 /* jshint ignore:start */
 /*!
 * jQuery JavaScript Library v1.11.1
 * http://jquery.com/
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 *
 * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 *
 * Date: 2014-05-01T17:42Z
 */

/*!
 * Sizzle CSS Selector Engine v1.10.19
 * http://sizzlejs.com/
 *
 * Copyright 2013 jQuery Foundation, Inc. and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 *
 * Date: 2014-04-18
 */

/*!
 * VERSION: 1.14.1
 * DATE: 2014-10-16
 * UPDATES AND DOCS AT: http://www.greensock.com
 * 
 * Includes all of the following: TweenLite, TweenMax, TimelineLite, TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin
 *
 * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.
 * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 **/

/*!
 * VERSION: 1.14.1
 * DATE: 2014-10-16
 * UPDATES AND DOCS AT: http://www.greensock.com
 *
 * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.
 * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 */

/*
ScrollMagic v1.2.2
The jQuery plugin for doing magical scroll interactions.
(c) 2014 Jan Paepke (@janpaepke)
License & Info: http://janpaepke.github.io/ScrollMagic
	
Inspired by and partially based on SUPERSCROLLORAMA by John Polacek (@johnpolacek)
http://johnpolacek.github.com/superscrollorama/

Powered by the Greensock Tweening Platform (GSAP): http://www.greensock.com/js
Greensock License info at http://www.greensock.com/licensing/
*/

/**
@overview	##Info
@version	1.2.2
@license	Dual licensed under MIT license and GPL.
@author		Jan Paepke - e-mail@janpaepke.de

@todo: enhancement: remove dependencies and move to plugins -> 2.0
@todo: bug: when cascading pins (pinning one element multiple times) and later removing them without reset, positioning errors occur.
@todo: bug: having multiple scroll directions with cascaded pins doesn't work (one scroll vertical, one horizontal)
@todo: feature: optimize performance on debug plugin (huge drawbacks, when using many scenes)
*/

/*!
 * Bootstrap v3.2.0 (http://getbootstrap.com)
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */

/* ========================================================================
 * Bootstrap: transition.js v3.2.0
 * http://getbootstrap.com/javascript/#transitions
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: alert.js v3.2.0
 * http://getbootstrap.com/javascript/#alerts
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: button.js v3.2.0
 * http://getbootstrap.com/javascript/#buttons
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: carousel.js v3.2.0
 * http://getbootstrap.com/javascript/#carousel
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: collapse.js v3.2.0
 * http://getbootstrap.com/javascript/#collapse
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: dropdown.js v3.2.0
 * http://getbootstrap.com/javascript/#dropdowns
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: modal.js v3.2.0
 * http://getbootstrap.com/javascript/#modals
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: tooltip.js v3.2.0
 * http://getbootstrap.com/javascript/#tooltip
 * Inspired by the original jQuery.tipsy by Jason Frame
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: popover.js v3.2.0
 * http://getbootstrap.com/javascript/#popovers
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: scrollspy.js v3.2.0
 * http://getbootstrap.com/javascript/#scrollspy
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: tab.js v3.2.0
 * http://getbootstrap.com/javascript/#tabs
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* ========================================================================
 * Bootstrap: affix.js v3.2.0
 * http://getbootstrap.com/javascript/#affix
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

(function(e, t) {
    typeof module == "object" && typeof module.exports == "object" ? module.exports = e.document ? t(e, !0) : function(e) {
        if (!e.document)
            throw new Error("jQuery requires a window with a document");
        return t(e)
    } : t(e)
})(typeof window != "undefined" ? window : this, function(e, t) {
    function g(e) {
        var t = e.length, n = h.type(e);
        return n === "function" || h.isWindow(e) ? !1 : e.nodeType === 1 && t ? !0 : n === "array" || t === 0 || typeof t == "number" && t > 0 && t - 1 in e
    }
    function S(e, t, n) {
        if (h.isFunction(t))
            return h.grep(e, function(e, r) {
                return !!t.call(e, r, e) !== n
            });
        if (t.nodeType)
            return h.grep(e, function(e) {
                return e === t !== n
            });
        if (typeof t == "string") {
            if (E.test(t))
                return h.filter(t, e, n);
            t = h.filter(t, e)
        }
        return h.grep(e, function(e) {
            return h.inArray(e, t) >= 0 !== n
        })
    }
    function A(e, t) {
        do
            e = e[t];
        while (e && e.nodeType !== 1);
        return e
    }
    function _(e) {
        var t = M[e] = {};
        return h.each(e.match(O) || [], function(e, n) {
            t[n] = !0
        }), t
    }
    function P() {
        T.addEventListener ? (T.removeEventListener("DOMContentLoaded", H, !1), e.removeEventListener("load", H, !1)) : (T.detachEvent("onreadystatechange", H), e.detachEvent("onload", H))
    }
    function H() {
        if (T.addEventListener || event.type === "load" || T.readyState === "complete")
            P(), h.ready()
    }
    function q(e, t, n) {
        if (n === undefined && e.nodeType === 1) {
            var r = "data-" + t.replace(I, "-$1").toLowerCase();
            n = e.getAttribute(r);
            if (typeof n == "string") {
                try {
                    n = n === "true" ? !0 : n === "false" ? !1 : n === "null" ? null : +n + "" === n ? +n : F.test(n) ? h.parseJSON(n) : n
                } catch (i) {
                }
                h.data(e, t, n)
            } else
                n = undefined
        }
        return n
    }
    function R(e) {
        var t;
        for (t in e) {
            if (t === "data" && h.isEmptyObject(e[t]))
                continue;
            if (t !== "toJSON")
                return !1
        }
        return !0
    }
    function U(e, t, r, i) {
        if (!h.acceptData(e))
            return;
        var s, o, u = h.expando, a = e.nodeType, f = a ? h.cache : e, l = a ? e[u] : e[u] && u;
        if ((!l || !f[l] || !i && !f[l].data) && r === undefined && typeof t == "string")
            return;
        l || (a ? l = e[u] = n.pop() || h.guid++ : l = u), f[l] || (f[l] = a ? {} : {toJSON: h.noop});
        if (typeof t == "object" || typeof t == "function")
            i ? f[l] = h.extend(f[l], t) : f[l].data = h.extend(f[l].data, t);
        return o = f[l], i || (o.data || (o.data = {}), o = o.data), r !== undefined && (o[h.camelCase(t)] = r), typeof t == "string" ? (s = o[t], s == null && (s = o[h.camelCase(t)])) : s = o, s
    }
    function z(e, t, n) {
        if (!h.acceptData(e))
            return;
        var r, i, s = e.nodeType, o = s ? h.cache : e, u = s ? e[h.expando] : h.expando;
        if (!o[u])
            return;
        if (t) {
            r = n ? o[u] : o[u].data;
            if (r) {
                h.isArray(t) ? t = t.concat(h.map(t, h.camelCase)) : t in r ? t = [t] : (t = h.camelCase(t), t in r ? t = [t] : t = t.split(" ")), i = t.length;
                while (i--)
                    delete r[t[i]];
                if (n ? !R(r) : !h.isEmptyObject(r))
                    return
            }
        }
        if (!n) {
            delete o[u].data;
            if (!R(o[u]))
                return
        }
        s ? h.cleanData([e], !0) : l.deleteExpando || o != o.window ? delete o[u] : o[u] = null
    }
    function et() {
        return !0
    }
    function tt() {
        return !1
    }
    function nt() {
        try {
            return T.activeElement
        } catch (e) {
        }
    }
    function rt(e) {
        var t = it.split("|"), n = e.createDocumentFragment();
        if (n.createElement)
            while (t.length)
                n.createElement(t.pop());
        return n
    }
    function wt(e, t) {
        var n, r, i = 0, s = typeof e.getElementsByTagName !== B ? e.getElementsByTagName(t || "*") : typeof e.querySelectorAll !== B ? e.querySelectorAll(t || "*") : undefined;
        if (!s)
            for (s = [], n = e.childNodes || e; (r = n[i]) != null; i++)
                !t || h.nodeName(r, t) ? s.push(r) : h.merge(s, wt(r, t));
        return t === undefined || t && h.nodeName(e, t) ? h.merge([e], s) : s
    }
    function Et(e) {
        J.test(e.type) && (e.defaultChecked = e.checked)
    }
    function St(e, t) {
        return h.nodeName(e, "table") && h.nodeName(t.nodeType !== 11 ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
    }
    function xt(e) {
        return e.type = (h.find.attr(e, "type") !== null) + "/" + e.type, e
    }
    function Tt(e) {
        var t = vt.exec(e.type);
        return t ? e.type = t[1] : e.removeAttribute("type"), e
    }
    function Nt(e, t) {
        var n, r = 0;
        for (; (n = e[r]) != null; r++)
            h._data(n, "globalEval", !t || h._data(t[r], "globalEval"))
    }
    function Ct(e, t) {
        if (t.nodeType !== 1 || !h.hasData(e))
            return;
        var n, r, i, s = h._data(e), o = h._data(t, s), u = s.events;
        if (u) {
            delete o.handle, o.events = {};
            for (n in u)
                for (r = 0, i = u[n].length; r < i; r++)
                    h.event.add(t, n, u[n][r])
        }
        o.data && (o.data = h.extend({}, o.data))
    }
    function kt(e, t) {
        var n, r, i;
        if (t.nodeType !== 1)
            return;
        n = t.nodeName.toLowerCase();
        if (!l.noCloneEvent && t[h.expando]) {
            i = h._data(t);
            for (r in i.events)
                h.removeEvent(t, r, i.handle);
            t.removeAttribute(h.expando)
        }
        if (n === "script" && t.text !== e.text)
            xt(t).text = e.text, Tt(t);
        else if (n === "object")
            t.parentNode && (t.outerHTML = e.outerHTML), l.html5Clone && e.innerHTML && !h.trim(t.innerHTML) && (t.innerHTML = e.innerHTML);
        else if (n === "input" && J.test(e.type))
            t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value);
        else if (n === "option")
            t.defaultSelected = t.selected = e.defaultSelected;
        else if (n === "input" || n === "textarea")
            t.defaultValue = e.defaultValue
    }
    function Ot(t, n) {
        var r, i = h(n.createElement(t)).appendTo(n.body), s = e.getDefaultComputedStyle && (r = e.getDefaultComputedStyle(i[0])) ? r.display : h.css(i[0], "display");
        return i.detach(), s
    }
    function Mt(e) {
        var t = T, n = At[e];
        if (!n) {
            n = Ot(e, t);
            if (n === "none" || !n)
                Lt = (Lt || h("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement), t = (Lt[0].contentWindow || Lt[0].contentDocument).document, t.write(), t.close(), n = Ot(e, t), Lt.detach();
            At[e] = n
        }
        return n
    }
    function jt(e, t) {
        return {get: function() {
                var n = e();
                if (n == null)
                    return;
                if (n) {
                    delete this.get;
                    return
                }
                return (this.get = t).apply(this, arguments)
            }}
    }
    function Vt(e, t) {
        if (t in e)
            return t;
        var n = t.charAt(0).toUpperCase() + t.slice(1), r = t, i = Xt.length;
        while (i--) {
            t = Xt[i] + n;
            if (t in e)
                return t
        }
        return r
    }
    function $t(e, t) {
        var n, r, i, s = [], o = 0, u = e.length;
        for (; o < u; o++) {
            r = e[o];
            if (!r.style)
                continue;
            s[o] = h._data(r, "olddisplay"), n = r.style.display, t ? (!s[o] && n === "none" && (r.style.display = ""), r.style.display === "" && V(r) && (s[o] = h._data(r, "olddisplay", Mt(r.nodeName)))) : (i = V(r), (n && n !== "none" || !i) && h._data(r, "olddisplay", i ? n : h.css(r, "display")))
        }
        for (o = 0; o < u; o++) {
            r = e[o];
            if (!r.style)
                continue;
            if (!t || r.style.display === "none" || r.style.display === "")
                r.style.display = t ? s[o] || "" : "none"
        }
        return e
    }
    function Jt(e, t, n) {
        var r = Rt.exec(t);
        return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
    }
    function Kt(e, t, n, r, i) {
        var s = n === (r ? "border" : "content") ? 4 : t === "width" ? 1 : 0, o = 0;
        for (; s < 4; s += 2)
            n === "margin" && (o += h.css(e, n + X[s], !0, i)), r ? (n === "content" && (o -= h.css(e, "padding" + X[s], !0, i)), n !== "margin" && (o -= h.css(e, "border" + X[s] + "Width", !0, i))) : (o += h.css(e, "padding" + X[s], !0, i), n !== "padding" && (o += h.css(e, "border" + X[s] + "Width", !0, i)));
        return o
    }
    function Qt(e, t, n) {
        var r = !0, i = t === "width" ? e.offsetWidth : e.offsetHeight, s = Pt(e), o = l.boxSizing && h.css(e, "boxSizing", !1, s) === "border-box";
        if (i <= 0 || i == null) {
            i = Ht(e, t, s);
            if (i < 0 || i == null)
                i = e.style[t];
            if (Dt.test(i))
                return i;
            r = o && (l.boxSizingReliable() || i === e.style[t]), i = parseFloat(i) || 0
        }
        return i + Kt(e, t, n || (o ? "border" : "content"), r, s) + "px"
    }
    function Gt(e, t, n, r, i) {
        return new Gt.prototype.init(e, t, n, r, i)
    }
    function on() {
        return setTimeout(function() {
            Yt = undefined
        }), Yt = h.now()
    }
    function un(e, t) {
        var n, r = {height: e}, i = 0;
        t = t ? 1 : 0;
        for (; i < 4; i += 2 - t)
            n = X[i], r["margin" + n] = r["padding" + n] = e;
        return t && (r.opacity = r.width = e), r
    }
    function an(e, t, n) {
        var r, i = (sn[t] || []).concat(sn["*"]), s = 0, o = i.length;
        for (; s < o; s++)
            if (r = i[s].call(n, t, e))
                return r
    }
    function fn(e, t, n) {
        var r, i, s, o, u, a, f, c, p = this, d = {}, v = e.style, m = e.nodeType && V(e), g = h._data(e, "fxshow");
        n.queue || (u = h._queueHooks(e, "fx"), u.unqueued == null && (u.unqueued = 0, a = u.empty.fire, u.empty.fire = function() {
            u.unqueued || a()
        }), u.unqueued++, p.always(function() {
            p.always(function() {
                u.unqueued--, h.queue(e, "fx").length || u.empty.fire()
            })
        })), e.nodeType === 1 && ("height" in t || "width" in t) && (n.overflow = [v.overflow, v.overflowX, v.overflowY], f = h.css(e, "display"), c = f === "none" ? h._data(e, "olddisplay") || Mt(e.nodeName) : f, c === "inline" && h.css(e, "float") === "none" && (!l.inlineBlockNeedsLayout || Mt(e.nodeName) === "inline" ? v.display = "inline-block" : v.zoom = 1)), n.overflow && (v.overflow = "hidden", l.shrinkWrapBlocks() || p.always(function() {
            v.overflow = n.overflow[0], v.overflowX = n.overflow[1], v.overflowY = n.overflow[2]
        }));
        for (r in t) {
            i = t[r];
            if (en.exec(i)) {
                delete t[r], s = s || i === "toggle";
                if (i === (m ? "hide" : "show")) {
                    if (i !== "show" || !g || g[r] === undefined)
                        continue;
                    m = !0
                }
                d[r] = g && g[r] || h.style(e, r)
            } else
                f = undefined
        }
        if (!h.isEmptyObject(d)) {
            g ? "hidden" in g && (m = g.hidden) : g = h._data(e, "fxshow", {}), s && (g.hidden = !m), m ? h(e).show() : p.done(function() {
                h(e).hide()
            }), p.done(function() {
                var t;
                h._removeData(e, "fxshow");
                for (t in d)
                    h.style(e, t, d[t])
            });
            for (r in d)
                o = an(m ? g[r] : 0, r, p), r in g || (g[r] = o.start, m && (o.end = o.start, o.start = r === "width" || r === "height" ? 1 : 0))
        } else
            (f === "none" ? Mt(e.nodeName) : f) === "inline" && (v.display = f)
    }
    function ln(e, t) {
        var n, r, i, s, o;
        for (n in e) {
            r = h.camelCase(n), i = t[r], s = e[n], h.isArray(s) && (i = s[1], s = e[n] = s[0]), n !== r && (e[r] = s, delete e[n]), o = h.cssHooks[r];
            if (o && "expand" in o) {
                s = o.expand(s), delete e[r];
                for (n in s)
                    n in e || (e[n] = s[n], t[n] = i)
            } else
                t[r] = i
        }
    }
    function cn(e, t, n) {
        var r, i, s = 0, o = rn.length, u = h.Deferred().always(function() {
            delete a.elem
        }), a = function() {
            if (i)
                return !1;
            var t = Yt || on(), n = Math.max(0, f.startTime + f.duration - t), r = n / f.duration || 0, s = 1 - r, o = 0, a = f.tweens.length;
            for (; o < a; o++)
                f.tweens[o].run(s);
            return u.notifyWith(e, [f, s, n]), s < 1 && a ? n : (u.resolveWith(e, [f]), !1)
        }, f = u.promise({elem: e,props: h.extend({}, t),opts: h.extend(!0, {specialEasing: {}}, n),originalProperties: t,originalOptions: n,startTime: Yt || on(),duration: n.duration,tweens: [],createTween: function(t, n) {
                var r = h.Tween(e, f.opts, t, n, f.opts.specialEasing[t] || f.opts.easing);
                return f.tweens.push(r), r
            },stop: function(t) {
                var n = 0, r = t ? f.tweens.length : 0;
                if (i)
                    return this;
                i = !0;
                for (; n < r; n++)
                    f.tweens[n].run(1);
                return t ? u.resolveWith(e, [f, t]) : u.rejectWith(e, [f, t]), this
            }}), l = f.props;
        ln(l, f.opts.specialEasing);
        for (; s < o; s++) {
            r = rn[s].call(f, e, l, f.opts);
            if (r)
                return r
        }
        return h.map(l, an, f), h.isFunction(f.opts.start) && f.opts.start.call(e, f), h.fx.timer(h.extend(a, {elem: e,anim: f,queue: f.opts.queue})), f.progress(f.opts.progress).done(f.opts.done, f.opts.complete).fail(f.opts.fail).always(f.opts.always)
    }
    function Fn(e) {
        return function(t, n) {
            typeof t != "string" && (n = t, t = "*");
            var r, i = 0, s = t.toLowerCase().match(O) || [];
            if (h.isFunction(n))
                while (r = s[i++])
                    r.charAt(0) === "+" ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
        }
    }
    function In(e, t, n, r) {
        function o(u) {
            var a;
            return i[u] = !0, h.each(e[u] || [], function(e, u) {
                var f = u(t, n, r);
                if (typeof f == "string" && !s && !i[f])
                    return t.dataTypes.unshift(f), o(f), !1;
                if (s)
                    return !(a = f)
            }), a
        }
        var i = {}, s = e === Hn;
        return o(t.dataTypes[0]) || !i["*"] && o("*")
    }
    function qn(e, t) {
        var n, r, i = h.ajaxSettings.flatOptions || {};
        for (r in t)
            t[r] !== undefined && ((i[r] ? e : n || (n = {}))[r] = t[r]);
        return n && h.extend(!0, e, n), e
    }
    function Rn(e, t, n) {
        var r, i, s, o, u = e.contents, a = e.dataTypes;
        while (a[0] === "*")
            a.shift(), i === undefined && (i = e.mimeType || t.getResponseHeader("Content-Type"));
        if (i)
            for (o in u)
                if (u[o] && u[o].test(i)) {
                    a.unshift(o);
                    break
                }
        if (a[0] in n)
            s = a[0];
        else {
            for (o in n) {
                if (!a[0] || e.converters[o + " " + a[0]]) {
                    s = o;
                    break
                }
                r || (r = o)
            }
            s = s || r
        }
        if (s)
            return s !== a[0] && a.unshift(s), n[s]
    }
    function Un(e, t, n, r) {
        var i, s, o, u, a, f = {}, l = e.dataTypes.slice();
        if (l[1])
            for (o in e.converters)
                f[o.toLowerCase()] = e.converters[o];
        s = l.shift();
        while (s) {
            e.responseFields[s] && (n[e.responseFields[s]] = t), !a && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), a = s, s = l.shift();
            if (s)
                if (s === "*")
                    s = a;
                else if (a !== "*" && a !== s) {
                    o = f[a + " " + s] || f["* " + s];
                    if (!o)
                        for (i in f) {
                            u = i.split(" ");
                            if (u[1] === s) {
                                o = f[a + " " + u[0]] || f["* " + u[0]];
                                if (o) {
                                    o === !0 ? o = f[i] : f[i] !== !0 && (s = u[0], l.unshift(u[1]));
                                    break
                                }
                            }
                        }
                    if (o !== !0)
                        if (o && e["throws"])
                            t = o(t);
                        else
                            try {
                                t = o(t)
                            } catch (c) {
                                return {state: "parsererror",error: o ? c : "No conversion from " + a + " to " + s}
                            }
                }
        }
        return {state: "success",data: t}
    }
    function Jn(e, t, n, r) {
        var i;
        if (h.isArray(t))
            h.each(t, function(t, i) {
                n || Wn.test(e) ? r(e, i) : Jn(e + "[" + (typeof i == "object" ? t : "") + "]", i, n, r)
            });
        else if (!n && h.type(t) === "object")
            for (i in t)
                Jn(e + "[" + i + "]", t[i], n, r);
        else
            r(e, t)
    }
    function Yn() {
        try {
            return new e.XMLHttpRequest
        } catch (t) {
        }
    }
    function Zn() {
        try {
            return new e.ActiveXObject("Microsoft.XMLHTTP")
        } catch (t) {
        }
    }
    function ir(e) {
        return h.isWindow(e) ? e : e.nodeType === 9 ? e.defaultView || e.parentWindow : !1
    }
    var n = [], r = n.slice, i = n.concat, s = n.push, o = n.indexOf, u = {}, a = u.toString, f = u.hasOwnProperty, l = {}, c = "1.11.1", h = function(e, t) {
        return new h.fn.init(e, t)
    }, p = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, d = /^-ms-/, v = /-([\da-z])/gi, m = function(e, t) {
        return t.toUpperCase()
    };
    h.fn = h.prototype = {jquery: c,constructor: h,selector: "",length: 0,toArray: function() {
            return r.call(this)
        },get: function(e) {
            return e != null ? e < 0 ? this[e + this.length] : this[e] : r.call(this)
        },pushStack: function(e) {
            var t = h.merge(this.constructor(), e);
            return t.prevObject = this, t.context = this.context, t
        },each: function(e, t) {
            return h.each(this, e, t)
        },map: function(e) {
            return this.pushStack(h.map(this, function(t, n) {
                return e.call(t, n, t)
            }))
        },slice: function() {
            return this.pushStack(r.apply(this, arguments))
        },first: function() {
            return this.eq(0)
        },last: function() {
            return this.eq(-1)
        },eq: function(e) {
            var t = this.length, n = +e + (e < 0 ? t : 0);
            return this.pushStack(n >= 0 && n < t ? [this[n]] : [])
        },end: function() {
            return this.prevObject || this.constructor(null)
        },push: s,sort: n.sort,splice: n.splice}, h.extend = h.fn.extend = function() {
        var e, t, n, r, i, s, o = arguments[0] || {}, u = 1, a = arguments.length, f = !1;
        typeof o == "boolean" && (f = o, o = arguments[u] || {}, u++), typeof o != "object" && !h.isFunction(o) && (o = {}), u === a && (o = this, u--);
        for (; u < a; u++)
            if ((i = arguments[u]) != null)
                for (r in i) {
                    e = o[r], n = i[r];
                    if (o === n)
                        continue;
                    f && n && (h.isPlainObject(n) || (t = h.isArray(n))) ? (t ? (t = !1, s = e && h.isArray(e) ? e : []) : s = e && h.isPlainObject(e) ? e : {}, o[r] = h.extend(f, s, n)) : n !== undefined && (o[r] = n)
                }
        return o
    }, h.extend({expando: "jQuery" + (c + Math.random()).replace(/\D/g, ""),isReady: !0,error: function(e) {
            throw new Error(e)
        },noop: function() {
        },isFunction: function(e) {
            return h.type(e) === "function"
        },isArray: Array.isArray || function(e) {
            return h.type(e) === "array"
        },isWindow: function(e) {
            return e != null && e == e.window
        },isNumeric: function(e) {
            return !h.isArray(e) && e - parseFloat(e) >= 0
        },isEmptyObject: function(e) {
            var t;
            for (t in e)
                return !1;
            return !0
        },isPlainObject: function(e) {
            var t;
            if (!e || h.type(e) !== "object" || e.nodeType || h.isWindow(e))
                return !1;
            try {
                if (e.constructor && !f.call(e, "constructor") && !f.call(e.constructor.prototype, "isPrototypeOf"))
                    return !1
            } catch (n) {
                return !1
            }
            if (l.ownLast)
                for (t in e)
                    return f.call(e, t);
            for (t in e)
                ;
            return t === undefined || f.call(e, t)
        },type: function(e) {
            return e == null ? e + "" : typeof e == "object" || typeof e == "function" ? u[a.call(e)] || "object" : typeof e
        },globalEval: function(t) {
            t && h.trim(t) && (e.execScript || function(t) {
                e.eval.call(e, t)
            })(t)
        },camelCase: function(e) {
            return e.replace(d, "ms-").replace(v, m)
        },nodeName: function(e, t) {
            return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
        },each: function(e, t, n) {
            var r, i = 0, s = e.length, o = g(e);
            if (n)
                if (o)
                    for (; i < s; i++) {
                        r = t.apply(e[i], n);
                        if (r === !1)
                            break
                    }
                else
                    for (i in e) {
                        r = t.apply(e[i], n);
                        if (r === !1)
                            break
                    }
            else if (o)
                for (; i < s; i++) {
                    r = t.call(e[i], i, e[i]);
                    if (r === !1)
                        break
                }
            else
                for (i in e) {
                    r = t.call(e[i], i, e[i]);
                    if (r === !1)
                        break
                }
            return e
        },trim: function(e) {
            return e == null ? "" : (e + "").replace(p, "")
        },makeArray: function(e, t) {
            var n = t || [];
            return e != null && (g(Object(e)) ? h.merge(n, typeof e == "string" ? [e] : e) : s.call(n, e)), n
        },inArray: function(e, t, n) {
            var r;
            if (t) {
                if (o)
                    return o.call(t, e, n);
                r = t.length, n = n ? n < 0 ? Math.max(0, r + n) : n : 0;
                for (; n < r; n++)
                    if (n in t && t[n] === e)
                        return n
            }
            return -1
        },merge: function(e, t) {
            var n = +t.length, r = 0, i = e.length;
            while (r < n)
                e[i++] = t[r++];
            if (n !== n)
                while (t[r] !== undefined)
                    e[i++] = t[r++];
            return e.length = i, e
        },grep: function(e, t, n) {
            var r, i = [], s = 0, o = e.length, u = !n;
            for (; s < o; s++)
                r = !t(e[s], s), r !== u && i.push(e[s]);
            return i
        },map: function(e, t, n) {
            var r, s = 0, o = e.length, u = g(e), a = [];
            if (u)
                for (; s < o; s++)
                    r = t(e[s], s, n), r != null && a.push(r);
            else
                for (s in e)
                    r = t(e[s], s, n), r != null && a.push(r);
            return i.apply([], a)
        },guid: 1,proxy: function(e, t) {
            var n, i, s;
            return typeof t == "string" && (s = e[t], t = e, e = s), h.isFunction(e) ? (n = r.call(arguments, 2), i = function() {
                return e.apply(t || this, n.concat(r.call(arguments)))
            }, i.guid = e.guid = e.guid || h.guid++, i) : undefined
        },now: function() {
            return +(new Date)
        },support: l}), h.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(e, t) {
        u["[object " + t + "]"] = t.toLowerCase()
    });
    var y = function(e) {
        function st(e, t, r, i) {
            var s, u, f, l, c, d, g, y, S, x;
            (t ? t.ownerDocument || t : E) !== p && h(t), t = t || p, r = r || [];
            if (!e || typeof e != "string")
                return r;
            if ((l = t.nodeType) !== 1 && l !== 9)
                return [];
            if (v && !i) {
                if (s = Z.exec(e))
                    if (f = s[1]) {
                        if (l === 9) {
                            u = t.getElementById(f);
                            if (!u || !u.parentNode)
                                return r;
                            if (u.id === f)
                                return r.push(u), r
                        } else if (t.ownerDocument && (u = t.ownerDocument.getElementById(f)) && b(t, u) && u.id === f)
                            return r.push(u), r
                    } else {
                        if (s[2])
                            return P.apply(r, t.getElementsByTagName(e)), r;
                        if ((f = s[3]) && n.getElementsByClassName && t.getElementsByClassName)
                            return P.apply(r, t.getElementsByClassName(f)), r
                    }
                if (n.qsa && (!m || !m.test(e))) {
                    y = g = w, S = t, x = l === 9 && e;
                    if (l === 1 && t.nodeName.toLowerCase() !== "object") {
                        d = o(e), (g = t.getAttribute("id")) ? y = g.replace(tt, "\\$&") : t.setAttribute("id", y), y = "[id='" + y + "'] ", c = d.length;
                        while (c--)
                            d[c] = y + mt(d[c]);
                        S = et.test(e) && dt(t.parentNode) || t, x = d.join(",")
                    }
                    if (x)
                        try {
                            return P.apply(r, S.querySelectorAll(x)), r
                        } catch (T) {
                        }finally {
                            g || t.removeAttribute("id")
                        }
                }
            }
            return a(e.replace(z, "$1"), t, r, i)
        }
        function ot() {
            function t(n, i) {
                return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i
            }
            var e = [];
            return t
        }
        function ut(e) {
            return e[w] = !0, e
        }
        function at(e) {
            var t = p.createElement("div");
            try {
                return !!e(t)
            } catch (n) {
                return !1
            }finally {
                t.parentNode && t.parentNode.removeChild(t), t = null
            }
        }
        function ft(e, t) {
            var n = e.split("|"), i = e.length;
            while (i--)
                r.attrHandle[n[i]] = t
        }
        function lt(e, t) {
            var n = t && e, r = n && e.nodeType === 1 && t.nodeType === 1 && (~t.sourceIndex || A) - (~e.sourceIndex || A);
            if (r)
                return r;
            if (n)
                while (n = n.nextSibling)
                    if (n === t)
                        return -1;
            return e ? 1 : -1
        }
        function ct(e) {
            return function(t) {
                var n = t.nodeName.toLowerCase();
                return n === "input" && t.type === e
            }
        }
        function ht(e) {
            return function(t) {
                var n = t.nodeName.toLowerCase();
                return (n === "input" || n === "button") && t.type === e
            }
        }
        function pt(e) {
            return ut(function(t) {
                return t = +t, ut(function(n, r) {
                    var i, s = e([], n.length, t), o = s.length;
                    while (o--)
                        n[i = s[o]] && (n[i] = !(r[i] = n[i]))
                })
            })
        }
        function dt(e) {
            return e && typeof e.getElementsByTagName !== L && e
        }
        function vt() {
        }
        function mt(e) {
            var t = 0, n = e.length, r = "";
            for (; t < n; t++)
                r += e[t].value;
            return r
        }
        function gt(e, t, n) {
            var r = t.dir, i = n && r === "parentNode", s = x++;
            return t.first ? function(t, n, s) {
                while (t = t[r])
                    if (t.nodeType === 1 || i)
                        return e(t, n, s)
            } : function(t, n, o) {
                var u, a, f = [S, s];
                if (o) {
                    while (t = t[r])
                        if (t.nodeType === 1 || i)
                            if (e(t, n, o))
                                return !0
                } else
                    while (t = t[r])
                        if (t.nodeType === 1 || i) {
                            a = t[w] || (t[w] = {});
                            if ((u = a[r]) && u[0] === S && u[1] === s)
                                return f[2] = u[2];
                            a[r] = f;
                            if (f[2] = e(t, n, o))
                                return !0
                        }
            }
        }
        function yt(e) {
            return e.length > 1 ? function(t, n, r) {
                var i = e.length;
                while (i--)
                    if (!e[i](t, n, r))
                        return !1;
                return !0
            } : e[0]
        }
        function bt(e, t, n) {
            var r = 0, i = t.length;
            for (; r < i; r++)
                st(e, t[r], n);
            return n
        }
        function wt(e, t, n, r, i) {
            var s, o = [], u = 0, a = e.length, f = t != null;
            for (; u < a; u++)
                if (s = e[u])
                    if (!n || n(s, r, i))
                        o.push(s), f && t.push(u);
            return o
        }
        function Et(e, t, n, r, i, s) {
            return r && !r[w] && (r = Et(r)), i && !i[w] && (i = Et(i, s)), ut(function(s, o, u, a) {
                var f, l, c, h = [], p = [], d = o.length, v = s || bt(t || "*", u.nodeType ? [u] : u, []), m = e && (s || !t) ? wt(v, h, e, u, a) : v, g = n ? i || (s ? e : d || r) ? [] : o : m;
                n && n(m, g, u, a);
                if (r) {
                    f = wt(g, p), r(f, [], u, a), l = f.length;
                    while (l--)
                        if (c = f[l])
                            g[p[l]] = !(m[p[l]] = c)
                }
                if (s) {
                    if (i || e) {
                        if (i) {
                            f = [], l = g.length;
                            while (l--)
                                (c = g[l]) && f.push(m[l] = c);
                            i(null, g = [], f, a)
                        }
                        l = g.length;
                        while (l--)
                            (c = g[l]) && (f = i ? B.call(s, c) : h[l]) > -1 && (s[f] = !(o[f] = c))
                    }
                } else
                    g = wt(g === o ? g.splice(d, g.length) : g), i ? i(null, o, g, a) : P.apply(o, g)
            })
        }
        function St(e) {
            var t, n, i, s = e.length, o = r.relative[e[0].type], u = o || r.relative[" "], a = o ? 1 : 0, l = gt(function(e) {
                return e === t
            }, u, !0), c = gt(function(e) {
                return B.call(t, e) > -1
            }, u, !0), h = [function(e, n, r) {
                    return !o && (r || n !== f) || ((t = n).nodeType ? l(e, n, r) : c(e, n, r))
                }];
            for (; a < s; a++)
                if (n = r.relative[e[a].type])
                    h = [gt(yt(h), n)];
                else {
                    n = r.filter[e[a].type].apply(null, e[a].matches);
                    if (n[w]) {
                        i = ++a;
                        for (; i < s; i++)
                            if (r.relative[e[i].type])
                                break;
                        return Et(a > 1 && yt(h), a > 1 && mt(e.slice(0, a - 1).concat({value: e[a - 2].type === " " ? "*" : ""})).replace(z, "$1"), n, a < i && St(e.slice(a, i)), i < s && St(e = e.slice(i)), i < s && mt(e))
                    }
                    h.push(n)
                }
            return yt(h)
        }
        function xt(e, t) {
            var n = t.length > 0, i = e.length > 0, s = function(s, o, u, a, l) {
                var c, h, d, v = 0, m = "0", g = s && [], y = [], b = f, w = s || i && r.find.TAG("*", l), E = S += b == null ? 1 : Math.random() || .1, x = w.length;
                l && (f = o !== p && o);
                for (; m !== x && (c = w[m]) != null; m++) {
                    if (i && c) {
                        h = 0;
                        while (d = e[h++])
                            if (d(c, o, u)) {
                                a.push(c);
                                break
                            }
                        l && (S = E)
                    }
                    n && ((c = !d && c) && v--, s && g.push(c))
                }
                v += m;
                if (n && m !== v) {
                    h = 0;
                    while (d = t[h++])
                        d(g, y, o, u);
                    if (s) {
                        if (v > 0)
                            while (m--)
                                !g[m] && !y[m] && (y[m] = _.call(a));
                        y = wt(y)
                    }
                    P.apply(a, y), l && !s && y.length > 0 && v + t.length > 1 && st.uniqueSort(a)
                }
                return l && (S = E, f = b), g
            };
            return n ? ut(s) : s
        }
        var t, n, r, i, s, o, u, a, f, l, c, h, p, d, v, m, g, y, b, w = "sizzle" + -(new Date), E = e.document, S = 0, x = 0, T = ot(), N = ot(), C = ot(), k = function(e, t) {
            return e === t && (c = !0), 0
        }, L = typeof undefined, A = 1 << 31, O = {}.hasOwnProperty, M = [], _ = M.pop, D = M.push, P = M.push, H = M.slice, B = M.indexOf || function(e) {
            var t = 0, n = this.length;
            for (; t < n; t++)
                if (this[t] === e)
                    return t;
            return -1
        }, j = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", F = "[\\x20\\t\\r\\n\\f]", I = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", q = I.replace("w", "w#"), R = "\\[" + F + "*(" + I + ")(?:" + F + "*([*^$|!~]?=)" + F + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + q + "))|)" + F + "*\\]", U = ":(" + I + ")(?:\\((" + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + "((?:\\\\.|[^\\\\()[\\]]|" + R + ")*)|" + ".*" + ")\\)|)", z = new RegExp("^" + F + "+|((?:^|[^\\\\])(?:\\\\.)*)" + F + "+$", "g"), W = new RegExp("^" + F + "*," + F + "*"), X = new RegExp("^" + F + "*([>+~]|" + F + ")" + F + "*"), V = new RegExp("=" + F + "*([^\\]'\"]*?)" + F + "*\\]", "g"), $ = new RegExp(U), J = new RegExp("^" + q + "$"), K = {ID: new RegExp("^#(" + I + ")"),CLASS: new RegExp("^\\.(" + I + ")"),TAG: new RegExp("^(" + I.replace("w", "w*") + ")"),ATTR: new RegExp("^" + R),PSEUDO: new RegExp("^" + U),CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + F + "*(even|odd|(([+-]|)(\\d*)n|)" + F + "*(?:([+-]|)" + F + "*(\\d+)|))" + F + "*\\)|)", "i"),bool: new RegExp("^(?:" + j + ")$", "i"),needsContext: new RegExp("^" + F + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + F + "*((?:-\\d)?\\d*)" + F + "*\\)|)(?=[^-]|$)", "i")}, Q = /^(?:input|select|textarea|button)$/i, G = /^h\d$/i, Y = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, et = /[+~]/, tt = /'|\\/g, nt = new RegExp("\\\\([\\da-f]{1,6}" + F + "?|(" + F + ")|.)", "ig"), rt = function(e, t, n) {
            var r = "0x" + t - 65536;
            return r !== r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, r & 1023 | 56320)
        };
        try {
            P.apply(M = H.call(E.childNodes), E.childNodes), M[E.childNodes.length].nodeType
        } catch (it) {
            P = {apply: M.length ? function(e, t) {
                    D.apply(e, H.call(t))
                } : function(e, t) {
                    var n = e.length, r = 0;
                    while (e[n++] = t[r++])
                        ;
                    e.length = n - 1
                }}
        }
        n = st.support = {}, s = st.isXML = function(e) {
            var t = e && (e.ownerDocument || e).documentElement;
            return t ? t.nodeName !== "HTML" : !1
        }, h = st.setDocument = function(e) {
            var t, i = e ? e.ownerDocument || e : E, o = i.defaultView;
            if (i === p || i.nodeType !== 9 || !i.documentElement)
                return p;
            p = i, d = i.documentElement, v = !s(i), o && o !== o.top && (o.addEventListener ? o.addEventListener("unload", function() {
                h()
            }, !1) : o.attachEvent && o.attachEvent("onunload", function() {
                h()
            })), n.attributes = at(function(e) {
                return e.className = "i", !e.getAttribute("className")
            }), n.getElementsByTagName = at(function(e) {
                return e.appendChild(i.createComment("")), !e.getElementsByTagName("*").length
            }), n.getElementsByClassName = Y.test(i.getElementsByClassName) && at(function(e) {
                return e.innerHTML = "<div class='a'></div><div class='a i'></div>", e.firstChild.className = "i", e.getElementsByClassName("i").length === 2
            }), n.getById = at(function(e) {
                return d.appendChild(e).id = w, !i.getElementsByName || !i.getElementsByName(w).length
            }), n.getById ? (r.find.ID = function(e, t) {
                if (typeof t.getElementById !== L && v) {
                    var n = t.getElementById(e);
                    return n && n.parentNode ? [n] : []
                }
            }, r.filter.ID = function(e) {
                var t = e.replace(nt, rt);
                return function(e) {
                    return e.getAttribute("id") === t
                }
            }) : (delete r.find.ID, r.filter.ID = function(e) {
                var t = e.replace(nt, rt);
                return function(e) {
                    var n = typeof e.getAttributeNode !== L && e.getAttributeNode("id");
                    return n && n.value === t
                }
            }), r.find.TAG = n.getElementsByTagName ? function(e, t) {
                if (typeof t.getElementsByTagName !== L)
                    return t.getElementsByTagName(e)
            } : function(e, t) {
                var n, r = [], i = 0, s = t.getElementsByTagName(e);
                if (e === "*") {
                    while (n = s[i++])
                        n.nodeType === 1 && r.push(n);
                    return r
                }
                return s
            }, r.find.CLASS = n.getElementsByClassName && function(e, t) {
                if (typeof t.getElementsByClassName !== L && v)
                    return t.getElementsByClassName(e)
            }, g = [], m = [];
            if (n.qsa = Y.test(i.querySelectorAll))
                at(function(e) {
                    e.innerHTML = "<select msallowclip=''><option selected=''></option></select>", e.querySelectorAll("[msallowclip^='']").length && m.push("[*^$]=" + F + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || m.push("\\[" + F + "*(?:value|" + j + ")"), e.querySelectorAll(":checked").length || m.push(":checked")
                }), at(function(e) {
                    var t = i.createElement("input");
                    t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && m.push("name" + F + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || m.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), m.push(",.*:")
                });
            return (n.matchesSelector = Y.test(y = d.matches || d.webkitMatchesSelector || d.mozMatchesSelector || d.oMatchesSelector || d.msMatchesSelector)) && at(function(e) {
                n.disconnectedMatch = y.call(e, "div"), y.call(e, "[s!='']:x"), g.push("!=", U)
            }), m = m.length && new RegExp(m.join("|")), g = g.length && new RegExp(g.join("|")), t = Y.test(d.compareDocumentPosition), b = t || Y.test(d.contains) ? function(e, t) {
                var n = e.nodeType === 9 ? e.documentElement : e, r = t && t.parentNode;
                return e === r || !!r && r.nodeType === 1 && !!(n.contains ? n.contains(r) : e.compareDocumentPosition && e.compareDocumentPosition(r) & 16)
            } : function(e, t) {
                if (t)
                    while (t = t.parentNode)
                        if (t === e)
                            return !0;
                return !1
            }, k = t ? function(e, t) {
                if (e === t)
                    return c = !0, 0;
                var r = !e.compareDocumentPosition - !t.compareDocumentPosition;
                return r ? r : (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, r & 1 || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === i || e.ownerDocument === E && b(E, e) ? -1 : t === i || t.ownerDocument === E && b(E, t) ? 1 : l ? B.call(l, e) - B.call(l, t) : 0 : r & 4 ? -1 : 1)
            } : function(e, t) {
                if (e === t)
                    return c = !0, 0;
                var n, r = 0, s = e.parentNode, o = t.parentNode, u = [e], a = [t];
                if (!s || !o)
                    return e === i ? -1 : t === i ? 1 : s ? -1 : o ? 1 : l ? B.call(l, e) - B.call(l, t) : 0;
                if (s === o)
                    return lt(e, t);
                n = e;
                while (n = n.parentNode)
                    u.unshift(n);
                n = t;
                while (n = n.parentNode)
                    a.unshift(n);
                while (u[r] === a[r])
                    r++;
                return r ? lt(u[r], a[r]) : u[r] === E ? -1 : a[r] === E ? 1 : 0
            }, i
        }, st.matches = function(e, t) {
            return st(e, null, null, t)
        }, st.matchesSelector = function(e, t) {
            (e.ownerDocument || e) !== p && h(e), t = t.replace(V, "='$1']");
            if (n.matchesSelector && v && (!g || !g.test(t)) && (!m || !m.test(t)))
                try {
                    var r = y.call(e, t);
                    if (r || n.disconnectedMatch || e.document && e.document.nodeType !== 11)
                        return r
                } catch (i) {
                }
            return st(t, p, null, [e]).length > 0
        }, st.contains = function(e, t) {
            return (e.ownerDocument || e) !== p && h(e), b(e, t)
        }, st.attr = function(e, t) {
            (e.ownerDocument || e) !== p && h(e);
            var i = r.attrHandle[t.toLowerCase()], s = i && O.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !v) : undefined;
            return s !== undefined ? s : n.attributes || !v ? e.getAttribute(t) : (s = e.getAttributeNode(t)) && s.specified ? s.value : null
        }, st.error = function(e) {
            throw new Error("Syntax error, unrecognized expression: " + e)
        }, st.uniqueSort = function(e) {
            var t, r = [], i = 0, s = 0;
            c = !n.detectDuplicates, l = !n.sortStable && e.slice(0), e.sort(k);
            if (c) {
                while (t = e[s++])
                    t === e[s] && (i = r.push(s));
                while (i--)
                    e.splice(r[i], 1)
            }
            return l = null, e
        }, i = st.getText = function(e) {
            var t, n = "", r = 0, s = e.nodeType;
            if (!s)
                while (t = e[r++])
                    n += i(t);
            else if (s === 1 || s === 9 || s === 11) {
                if (typeof e.textContent == "string")
                    return e.textContent;
                for (e = e.firstChild; e; e = e.nextSibling)
                    n += i(e)
            } else if (s === 3 || s === 4)
                return e.nodeValue;
            return n
        }, r = st.selectors = {cacheLength: 50,createPseudo: ut,match: K,attrHandle: {},find: {},relative: {">": {dir: "parentNode",first: !0}," ": {dir: "parentNode"},"+": {dir: "previousSibling",first: !0},"~": {dir: "previousSibling"}},preFilter: {ATTR: function(e) {
                    return e[1] = e[1].replace(nt, rt), e[3] = (e[3] || e[4] || e[5] || "").replace(nt, rt), e[2] === "~=" && (e[3] = " " + e[3] + " "), e.slice(0, 4)
                },CHILD: function(e) {
                    return e[1] = e[1].toLowerCase(), e[1].slice(0, 3) === "nth" ? (e[3] || st.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * (e[3] === "even" || e[3] === "odd")), e[5] = +(e[7] + e[8] || e[3] === "odd")) : e[3] && st.error(e[0]), e
                },PSEUDO: function(e) {
                    var t, n = !e[6] && e[2];
                    return K.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && $.test(n) && (t = o(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
                }},filter: {TAG: function(e) {
                    var t = e.replace(nt, rt).toLowerCase();
                    return e === "*" ? function() {
                        return !0
                    } : function(e) {
                        return e.nodeName && e.nodeName.toLowerCase() === t
                    }
                },CLASS: function(e) {
                    var t = T[e + " "];
                    return t || (t = new RegExp("(^|" + F + ")" + e + "(" + F + "|$)")) && T(e, function(e) {
                        return t.test(typeof e.className == "string" && e.className || typeof e.getAttribute !== L && e.getAttribute("class") || "")
                    })
                },ATTR: function(e, t, n) {
                    return function(r) {
                        var i = st.attr(r, e);
                        return i == null ? t === "!=" : t ? (i += "", t === "=" ? i === n : t === "!=" ? i !== n : t === "^=" ? n && i.indexOf(n) === 0 : t === "*=" ? n && i.indexOf(n) > -1 : t === "$=" ? n && i.slice(-n.length) === n : t === "~=" ? (" " + i + " ").indexOf(n) > -1 : t === "|=" ? i === n || i.slice(0, n.length + 1) === n + "-" : !1) : !0
                    }
                },CHILD: function(e, t, n, r, i) {
                    var s = e.slice(0, 3) !== "nth", o = e.slice(-4) !== "last", u = t === "of-type";
                    return r === 1 && i === 0 ? function(e) {
                        return !!e.parentNode
                    } : function(t, n, a) {
                        var f, l, c, h, p, d, v = s !== o ? "nextSibling" : "previousSibling", m = t.parentNode, g = u && t.nodeName.toLowerCase(), y = !a && !u;
                        if (m) {
                            if (s) {
                                while (v) {
                                    c = t;
                                    while (c = c[v])
                                        if (u ? c.nodeName.toLowerCase() === g : c.nodeType === 1)
                                            return !1;
                                    d = v = e === "only" && !d && "nextSibling"
                                }
                                return !0
                            }
                            d = [o ? m.firstChild : m.lastChild];
                            if (o && y) {
                                l = m[w] || (m[w] = {}), f = l[e] || [], p = f[0] === S && f[1], h = f[0] === S && f[2], c = p && m.childNodes[p];
                                while (c = ++p && c && c[v] || (h = p = 0) || d.pop())
                                    if (c.nodeType === 1 && ++h && c === t) {
                                        l[e] = [S, p, h];
                                        break
                                    }
                            } else if (y && (f = (t[w] || (t[w] = {}))[e]) && f[0] === S)
                                h = f[1];
                            else
                                while (c = ++p && c && c[v] || (h = p = 0) || d.pop())
                                    if ((u ? c.nodeName.toLowerCase() === g : c.nodeType === 1) && ++h) {
                                        y && ((c[w] || (c[w] = {}))[e] = [S, h]);
                                        if (c === t)
                                            break
                                    }
                            return h -= i, h === r || h % r === 0 && h / r >= 0
                        }
                    }
                },PSEUDO: function(e, t) {
                    var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || st.error("unsupported pseudo: " + e);
                    return i[w] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? ut(function(e, n) {
                        var r, s = i(e, t), o = s.length;
                        while (o--)
                            r = B.call(e, s[o]), e[r] = !(n[r] = s[o])
                    }) : function(e) {
                        return i(e, 0, n)
                    }) : i
                }},pseudos: {not: ut(function(e) {
                    var t = [], n = [], r = u(e.replace(z, "$1"));
                    return r[w] ? ut(function(e, t, n, i) {
                        var s, o = r(e, null, i, []), u = e.length;
                        while (u--)
                            if (s = o[u])
                                e[u] = !(t[u] = s)
                    }) : function(e, i, s) {
                        return t[0] = e, r(t, null, s, n), !n.pop()
                    }
                }),has: ut(function(e) {
                    return function(t) {
                        return st(e, t).length > 0
                    }
                }),contains: ut(function(e) {
                    return function(t) {
                        return (t.textContent || t.innerText || i(t)).indexOf(e) > -1
                    }
                }),lang: ut(function(e) {
                    return J.test(e || "") || st.error("unsupported lang: " + e), e = e.replace(nt, rt).toLowerCase(), function(t) {
                        var n;
                        do
                            if (n = v ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))
                                return n = n.toLowerCase(), n === e || n.indexOf(e + "-") === 0;
                        while ((t = t.parentNode) && t.nodeType === 1);
                        return !1
                    }
                }),target: function(t) {
                    var n = e.location && e.location.hash;
                    return n && n.slice(1) === t.id
                },root: function(e) {
                    return e === d
                },focus: function(e) {
                    return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
                },enabled: function(e) {
                    return e.disabled === !1
                },disabled: function(e) {
                    return e.disabled === !0
                },checked: function(e) {
                    var t = e.nodeName.toLowerCase();
                    return t === "input" && !!e.checked || t === "option" && !!e.selected
                },selected: function(e) {
                    return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
                },empty: function(e) {
                    for (e = e.firstChild; e; e = e.nextSibling)
                        if (e.nodeType < 6)
                            return !1;
                    return !0
                },parent: function(e) {
                    return !r.pseudos.empty(e)
                },header: function(e) {
                    return G.test(e.nodeName)
                },input: function(e) {
                    return Q.test(e.nodeName)
                },button: function(e) {
                    var t = e.nodeName.toLowerCase();
                    return t === "input" && e.type === "button" || t === "button"
                },text: function(e) {
                    var t;
                    return e.nodeName.toLowerCase() === "input" && e.type === "text" && ((t = e.getAttribute("type")) == null || t.toLowerCase() === "text")
                },first: pt(function() {
                    return [0]
                }),last: pt(function(e, t) {
                    return [t - 1]
                }),eq: pt(function(e, t, n) {
                    return [n < 0 ? n + t : n]
                }),even: pt(function(e, t) {
                    var n = 0;
                    for (; n < t; n += 2)
                        e.push(n);
                    return e
                }),odd: pt(function(e, t) {
                    var n = 1;
                    for (; n < t; n += 2)
                        e.push(n);
                    return e
                }),lt: pt(function(e, t, n) {
                    var r = n < 0 ? n + t : n;
                    for (; --r >= 0; )
                        e.push(r);
                    return e
                }),gt: pt(function(e, t, n) {
                    var r = n < 0 ? n + t : n;
                    for (; ++r < t; )
                        e.push(r);
                    return e
                })}}, r.pseudos.nth = r.pseudos.eq;
        for (t in {radio: !0,checkbox: !0,file: !0,password: !0,image: !0})
            r.pseudos[t] = ct(t);
        for (t in {submit: !0,reset: !0})
            r.pseudos[t] = ht(t);
        return vt.prototype = r.filters = r.pseudos, r.setFilters = new vt, o = st.tokenize = function(e, t) {
            var n, i, s, o, u, a, f, l = N[e + " "];
            if (l)
                return t ? 0 : l.slice(0);
            u = e, a = [], f = r.preFilter;
            while (u) {
                if (!n || (i = W.exec(u)))
                    i && (u = u.slice(i[0].length) || u), a.push(s = []);
                n = !1;
                if (i = X.exec(u))
                    n = i.shift(), s.push({value: n,type: i[0].replace(z, " ")}), u = u.slice(n.length);
                for (o in r.filter)
                    (i = K[o].exec(u)) && (!f[o] || (i = f[o](i))) && (n = i.shift(), s.push({value: n,type: o,matches: i}), u = u.slice(n.length));
                if (!n)
                    break
            }
            return t ? u.length : u ? st.error(e) : N(e, a).slice(0)
        }, u = st.compile = function(e, t) {
            var n, r = [], i = [], s = C[e + " "];
            if (!s) {
                t || (t = o(e)), n = t.length;
                while (n--)
                    s = St(t[n]), s[w] ? r.push(s) : i.push(s);
                s = C(e, xt(i, r)), s.selector = e
            }
            return s
        }, a = st.select = function(e, t, i, s) {
            var a, f, l, c, h, p = typeof e == "function" && e, d = !s && o(e = p.selector || e);
            i = i || [];
            if (d.length === 1) {
                f = d[0] = d[0].slice(0);
                if (f.length > 2 && (l = f[0]).type === "ID" && n.getById && t.nodeType === 9 && v && r.relative[f[1].type]) {
                    t = (r.find.ID(l.matches[0].replace(nt, rt), t) || [])[0];
                    if (!t)
                        return i;
                    p && (t = t.parentNode), e = e.slice(f.shift().value.length)
                }
                a = K.needsContext.test(e) ? 0 : f.length;
                while (a--) {
                    l = f[a];
                    if (r.relative[c = l.type])
                        break;
                    if (h = r.find[c])
                        if (s = h(l.matches[0].replace(nt, rt), et.test(f[0].type) && dt(t.parentNode) || t)) {
                            f.splice(a, 1), e = s.length && mt(f);
                            if (!e)
                                return P.apply(i, s), i;
                            break
                        }
                }
            }
            return (p || u(e, d))(s, t, !v, i, et.test(e) && dt(t.parentNode) || t), i
        }, n.sortStable = w.split("").sort(k).join("") === w, n.detectDuplicates = !!c, h(), n.sortDetached = at(function(e) {
            return e.compareDocumentPosition(p.createElement("div")) & 1
        }), at(function(e) {
            return e.innerHTML = "<a href='#'></a>", e.firstChild.getAttribute("href") === "#"
        }) || ft("type|href|height|width", function(e, t, n) {
            if (!n)
                return e.getAttribute(t, t.toLowerCase() === "type" ? 1 : 2)
        }), (!n.attributes || !at(function(e) {
            return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), e.firstChild.getAttribute("value") === ""
        })) && ft("value", function(e, t, n) {
            if (!n && e.nodeName.toLowerCase() === "input")
                return e.defaultValue
        }), at(function(e) {
            return e.getAttribute("disabled") == null
        }) || ft(j, function(e, t, n) {
            var r;
            if (!n)
                return e[t] === !0 ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
        }), st
    }(e);
    h.find = y, h.expr = y.selectors, h.expr[":"] = h.expr.pseudos, h.unique = y.uniqueSort, h.text = y.getText, h.isXMLDoc = y.isXML, h.contains = y.contains;
    var b = h.expr.match.needsContext, w = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, E = /^.[^:#\[\.,]*$/;
    h.filter = function(e, t, n) {
        var r = t[0];
        return n && (e = ":not(" + e + ")"), t.length === 1 && r.nodeType === 1 ? h.find.matchesSelector(r, e) ? [r] : [] : h.find.matches(e, h.grep(t, function(e) {
            return e.nodeType === 1
        }))
    }, h.fn.extend({find: function(e) {
            var t, n = [], r = this, i = r.length;
            if (typeof e != "string")
                return this.pushStack(h(e).filter(function() {
                    for (t = 0; t < i; t++)
                        if (h.contains(r[t], this))
                            return !0
                }));
            for (t = 0; t < i; t++)
                h.find(e, r[t], n);
            return n = this.pushStack(i > 1 ? h.unique(n) : n), n.selector = this.selector ? this.selector + " " + e : e, n
        },filter: function(e) {
            return this.pushStack(S(this, e || [], !1))
        },not: function(e) {
            return this.pushStack(S(this, e || [], !0))
        },is: function(e) {
            return !!S(this, typeof e == "string" && b.test(e) ? h(e) : e || [], !1).length
        }});
    var x, T = e.document, N = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, C = h.fn.init = function(e, t) {
        var n, r;
        if (!e)
            return this;
        if (typeof e == "string") {
            e.charAt(0) === "<" && e.charAt(e.length - 1) === ">" && e.length >= 3 ? n = [null, e, null] : n = N.exec(e);
            if (n && (n[1] || !t)) {
                if (n[1]) {
                    t = t instanceof h ? t[0] : t, h.merge(this, h.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : T, !0));
                    if (w.test(n[1]) && h.isPlainObject(t))
                        for (n in t)
                            h.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]);
                    return this
                }
                r = T.getElementById(n[2]);
                if (r && r.parentNode) {
                    if (r.id !== n[2])
                        return x.find(e);
                    this.length = 1, this[0] = r
                }
                return this.context = T, this.selector = e, this
            }
            return !t || t.jquery ? (t || x).find(e) : this.constructor(t).find(e)
        }
        return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : h.isFunction(e) ? typeof x.ready != "undefined" ? x.ready(e) : e(h) : (e.selector !== undefined && (this.selector = e.selector, this.context = e.context), h.makeArray(e, this))
    };
    C.prototype = h.fn, x = h(T);
    var k = /^(?:parents|prev(?:Until|All))/, L = {children: !0,contents: !0,next: !0,prev: !0};
    h.extend({dir: function(e, t, n) {
            var r = [], i = e[t];
            while (i && i.nodeType !== 9 && (n === undefined || i.nodeType !== 1 || !h(i).is(n)))
                i.nodeType === 1 && r.push(i), i = i[t];
            return r
        },sibling: function(e, t) {
            var n = [];
            for (; e; e = e.nextSibling)
                e.nodeType === 1 && e !== t && n.push(e);
            return n
        }}), h.fn.extend({has: function(e) {
            var t, n = h(e, this), r = n.length;
            return this.filter(function() {
                for (t = 0; t < r; t++)
                    if (h.contains(this, n[t]))
                        return !0
            })
        },closest: function(e, t) {
            var n, r = 0, i = this.length, s = [], o = b.test(e) || typeof e != "string" ? h(e, t || this.context) : 0;
            for (; r < i; r++)
                for (n = this[r]; n && n !== t; n = n.parentNode)
                    if (n.nodeType < 11 && (o ? o.index(n) > -1 : n.nodeType === 1 && h.find.matchesSelector(n, e))) {
                        s.push(n);
                        break
                    }
            return this.pushStack(s.length > 1 ? h.unique(s) : s)
        },index: function(e) {
            return e ? typeof e == "string" ? h.inArray(this[0], h(e)) : h.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        },add: function(e, t) {
            return this.pushStack(h.unique(h.merge(this.get(), h(e, t))))
        },addBack: function(e) {
            return this.add(e == null ? this.prevObject : this.prevObject.filter(e))
        }}), h.each({parent: function(e) {
            var t = e.parentNode;
            return t && t.nodeType !== 11 ? t : null
        },parents: function(e) {
            return h.dir(e, "parentNode")
        },parentsUntil: function(e, t, n) {
            return h.dir(e, "parentNode", n)
        },next: function(e) {
            return A(e, "nextSibling")
        },prev: function(e) {
            return A(e, "previousSibling")
        },nextAll: function(e) {
            return h.dir(e, "nextSibling")
        },prevAll: function(e) {
            return h.dir(e, "previousSibling")
        },nextUntil: function(e, t, n) {
            return h.dir(e, "nextSibling", n)
        },prevUntil: function(e, t, n) {
            return h.dir(e, "previousSibling", n)
        },siblings: function(e) {
            return h.sibling((e.parentNode || {}).firstChild, e)
        },children: function(e) {
            return h.sibling(e.firstChild)
        },contents: function(e) {
            return h.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : h.merge([], e.childNodes)
        }}, function(e, t) {
        h.fn[e] = function(n, r) {
            var i = h.map(this, t, n);
            return e.slice(-5) !== "Until" && (r = n), r && typeof r == "string" && (i = h.filter(r, i)), this.length > 1 && (L[e] || (i = h.unique(i)), k.test(e) && (i = i.reverse())), this.pushStack(i)
        }
    });
    var O = /\S+/g, M = {};
    h.Callbacks = function(e) {
        e = typeof e == "string" ? M[e] || _(e) : h.extend({}, e);
        var t, n, r, i, s, o, u = [], a = !e.once && [], f = function(c) {
            n = e.memory && c, r = !0, s = o || 0, o = 0, i = u.length, t = !0;
            for (; u && s < i; s++)
                if (u[s].apply(c[0], c[1]) === !1 && e.stopOnFalse) {
                    n = !1;
                    break
                }
            t = !1, u && (a ? a.length && f(a.shift()) : n ? u = [] : l.disable())
        }, l = {add: function() {
                if (u) {
                    var r = u.length;
                    (function s(t) {
                        h.each(t, function(t, n) {
                            var r = h.type(n);
                            r === "function" ? (!e.unique || !l.has(n)) && u.push(n) : n && n.length && r !== "string" && s(n)
                        })
                    })(arguments), t ? i = u.length : n && (o = r, f(n))
                }
                return this
            },remove: function() {
                return u && h.each(arguments, function(e, n) {
                    var r;
                    while ((r = h.inArray(n, u, r)) > -1)
                        u.splice(r, 1), t && (r <= i && i--, r <= s && s--)
                }), this
            },has: function(e) {
                return e ? h.inArray(e, u) > -1 : !!u && !!u.length
            },empty: function() {
                return u = [], i = 0, this
            },disable: function() {
                return u = a = n = undefined, this
            },disabled: function() {
                return !u
            },lock: function() {
                return a = undefined, n || l.disable(), this
            },locked: function() {
                return !a
            },fireWith: function(e, n) {
                return u && (!r || a) && (n = n || [], n = [e, n.slice ? n.slice() : n], t ? a.push(n) : f(n)), this
            },fire: function() {
                return l.fireWith(this, arguments), this
            },fired: function() {
                return !!r
            }};
        return l
    }, h.extend({Deferred: function(e) {
            var t = [["resolve", "done", h.Callbacks("once memory"), "resolved"], ["reject", "fail", h.Callbacks("once memory"), "rejected"], ["notify", "progress", h.Callbacks("memory")]], n = "pending", r = {state: function() {
                    return n
                },always: function() {
                    return i.done(arguments).fail(arguments), this
                },then: function() {
                    var e = arguments;
                    return h.Deferred(function(n) {
                        h.each(t, function(t, s) {
                            var o = h.isFunction(e[t]) && e[t];
                            i[s[1]](function() {
                                var e = o && o.apply(this, arguments);
                                e && h.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s[0] + "With"](this === r ? n.promise() : this, o ? [e] : arguments)
                            })
                        }), e = null
                    }).promise()
                },promise: function(e) {
                    return e != null ? h.extend(e, r) : r
                }}, i = {};
            return r.pipe = r.then, h.each(t, function(e, s) {
                var o = s[2], u = s[3];
                r[s[1]] = o.add, u && o.add(function() {
                    n = u
                }, t[e ^ 1][2].disable, t[2][2].lock), i[s[0]] = function() {
                    return i[s[0] + "With"](this === i ? r : this, arguments), this
                }, i[s[0] + "With"] = o.fireWith
            }), r.promise(i), e && e.call(i, i), i
        },when: function(e) {
            var t = 0, n = r.call(arguments), i = n.length, s = i !== 1 || e && h.isFunction(e.promise) ? i : 0, o = s === 1 ? e : h.Deferred(), u = function(e, t, n) {
                return function(i) {
                    t[e] = this, n[e] = arguments.length > 1 ? r.call(arguments) : i, n === a ? o.notifyWith(t, n) : --s || o.resolveWith(t, n)
                }
            }, a, f, l;
            if (i > 1) {
                a = new Array(i), f = new Array(i), l = new Array(i);
                for (; t < i; t++)
                    n[t] && h.isFunction(n[t].promise) ? n[t].promise().done(u(t, l, n)).fail(o.reject).progress(u(t, f, a)) : --s
            }
            return s || o.resolveWith(l, n), o.promise()
        }});
    var D;
    h.fn.ready = function(e) {
        return h.ready.promise().done(e), this
    }, h.extend({isReady: !1,readyWait: 1,holdReady: function(e) {
            e ? h.readyWait++ : h.ready(!0)
        },ready: function(e) {
            if (e === !0 ? --h.readyWait : h.isReady)
                return;
            if (!T.body)
                return setTimeout(h.ready);
            h.isReady = !0;
            if (e !== !0 && --h.readyWait > 0)
                return;
            D.resolveWith(T, [h]), h.fn.triggerHandler && (h(T).triggerHandler("ready"), h(T).off("ready"))
        }}), h.ready.promise = function(t) {
        if (!D) {
            D = h.Deferred();
            if (T.readyState === "complete")
                setTimeout(h.ready);
            else if (T.addEventListener)
                T.addEventListener("DOMContentLoaded", H, !1), e.addEventListener("load", H, !1);
            else {
                T.attachEvent("onreadystatechange", H), e.attachEvent("onload", H);
                var n = !1;
                try {
                    n = e.frameElement == null && T.documentElement
                } catch (r) {
                }
                n && n.doScroll && function i() {
                    if (!h.isReady) {
                        try {
                            n.doScroll("left")
                        } catch (e) {
                            return setTimeout(i, 50)
                        }
                        P(), h.ready()
                    }
                }()
            }
        }
        return D.promise(t)
    };
    var B = typeof undefined, j;
    for (j in h(l))
        break;
    l.ownLast = j !== "0", l.inlineBlockNeedsLayout = !1, h(function() {
        var e, t, n, r;
        n = T.getElementsByTagName("body")[0];
        if (!n || !n.style)
            return;
        t = T.createElement("div"), r = T.createElement("div"), r.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(r).appendChild(t), typeof t.style.zoom !== B && (t.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", l.inlineBlockNeedsLayout = e = t.offsetWidth === 3, e && (n.style.zoom = 1)), n.removeChild(r)
    }), function() {
        var e = T.createElement("div");
        if (l.deleteExpando == null) {
            l.deleteExpando = !0;
            try {
                delete e.test
            } catch (t) {
                l.deleteExpando = !1
            }
        }
        e = null
    }(), h.acceptData = function(e) {
        var t = h.noData[(e.nodeName + " ").toLowerCase()], n = +e.nodeType || 1;
        return n !== 1 && n !== 9 ? !1 : !t || t !== !0 && e.getAttribute("classid") === t
    };
    var F = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, I = /([A-Z])/g;
    h.extend({cache: {},noData: {"applet ": !0,"embed ": !0,"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData: function(e) {
            return e = e.nodeType ? h.cache[e[h.expando]] : e[h.expando], !!e && !R(e)
        },data: function(e, t, n) {
            return U(e, t, n)
        },removeData: function(e, t) {
            return z(e, t)
        },_data: function(e, t, n) {
            return U(e, t, n, !0)
        },_removeData: function(e, t) {
            return z(e, t, !0)
        }}), h.fn.extend({data: function(e, t) {
            var n, r, i, s = this[0], o = s && s.attributes;
            if (e === undefined) {
                if (this.length) {
                    i = h.data(s);
                    if (s.nodeType === 1 && !h._data(s, "parsedAttrs")) {
                        n = o.length;
                        while (n--)
                            o[n] && (r = o[n].name, r.indexOf("data-") === 0 && (r = h.camelCase(r.slice(5)), q(s, r, i[r])));
                        h._data(s, "parsedAttrs", !0)
                    }
                }
                return i
            }
            return typeof e == "object" ? this.each(function() {
                h.data(this, e)
            }) : arguments.length > 1 ? this.each(function() {
                h.data(this, e, t)
            }) : s ? q(s, e, h.data(s, e)) : undefined
        },removeData: function(e) {
            return this.each(function() {
                h.removeData(this, e)
            })
        }}), h.extend({queue: function(e, t, n) {
            var r;
            if (e)
                return t = (t || "fx") + "queue", r = h._data(e, t), n && (!r || h.isArray(n) ? r = h._data(e, t, h.makeArray(n)) : r.push(n)), r || []
        },dequeue: function(e, t) {
            t = t || "fx";
            var n = h.queue(e, t), r = n.length, i = n.shift(), s = h._queueHooks(e, t), o = function() {
                h.dequeue(e, t)
            };
            i === "inprogress" && (i = n.shift(), r--), i && (t === "fx" && n.unshift("inprogress"), delete s.stop, i.call(e, o, s)), !r && s && s.empty.fire()
        },_queueHooks: function(e, t) {
            var n = t + "queueHooks";
            return h._data(e, n) || h._data(e, n, {empty: h.Callbacks("once memory").add(function() {
                    h._removeData(e, t + "queue"), h._removeData(e, n)
                })})
        }}), h.fn.extend({queue: function(e, t) {
            var n = 2;
            return typeof e != "string" && (t = e, e = "fx", n--), arguments.length < n ? h.queue(this[0], e) : t === undefined ? this : this.each(function() {
                var n = h.queue(this, e, t);
                h._queueHooks(this, e), e === "fx" && n[0] !== "inprogress" && h.dequeue(this, e)
            })
        },dequeue: function(e) {
            return this.each(function() {
                h.dequeue(this, e)
            })
        },clearQueue: function(e) {
            return this.queue(e || "fx", [])
        },promise: function(e, t) {
            var n, r = 1, i = h.Deferred(), s = this, o = this.length, u = function() {
                --r || i.resolveWith(s, [s])
            };
            typeof e != "string" && (t = e, e = undefined), e = e || "fx";
            while (o--)
                n = h._data(s[o], e + "queueHooks"), n && n.empty && (r++, n.empty.add(u));
            return u(), i.promise(t)
        }});
    var W = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, X = ["Top", "Right", "Bottom", "Left"], V = function(e, t) {
        return e = t || e, h.css(e, "display") === "none" || !h.contains(e.ownerDocument, e)
    }, $ = h.access = function(e, t, n, r, i, s, o) {
        var u = 0, a = e.length, f = n == null;
        if (h.type(n) === "object") {
            i = !0;
            for (u in n)
                h.access(e, t, u, n[u], !0, s, o)
        } else if (r !== undefined) {
            i = !0, h.isFunction(r) || (o = !0), f && (o ? (t.call(e, r), t = null) : (f = t, t = function(e, t, n) {
                return f.call(h(e), n)
            }));
            if (t)
                for (; u < a; u++)
                    t(e[u], n, o ? r : r.call(e[u], u, t(e[u], n)))
        }
        return i ? e : f ? t.call(e) : a ? t(e[0], n) : s
    }, J = /^(?:checkbox|radio)$/i;
    (function() {
        var e = T.createElement("input"), t = T.createElement("div"), n = T.createDocumentFragment();
        t.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", l.leadingWhitespace = t.firstChild.nodeType === 3, l.tbody = !t.getElementsByTagName("tbody").length, l.htmlSerialize = !!t.getElementsByTagName("link").length, l.html5Clone = T.createElement("nav").cloneNode(!0).outerHTML !== "<:nav></:nav>", e.type = "checkbox", e.checked = !0, n.appendChild(e), l.appendChecked = e.checked, t.innerHTML = "<textarea>x</textarea>", l.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue, n.appendChild(t), t.innerHTML = "<input type='radio' checked='checked' name='t'/>", l.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, l.noCloneEvent = !0, t.attachEvent && (t.attachEvent("onclick", function() {
            l.noCloneEvent = !1
        }), t.cloneNode(!0).click());
        if (l.deleteExpando == null) {
            l.deleteExpando = !0;
            try {
                delete t.test
            } catch (r) {
                l.deleteExpando = !1
            }
        }
    })(), function() {
        var t, n, r = T.createElement("div");
        for (t in {submit: !0,change: !0,focusin: !0})
            n = "on" + t, (l[t + "Bubbles"] = n in e) || (r.setAttribute(n, "t"), l[t + "Bubbles"] = r.attributes[n].expando === !1);
        r = null
    }();
    var K = /^(?:input|select|textarea)$/i, Q = /^key/, G = /^(?:mouse|pointer|contextmenu)|click/, Y = /^(?:focusinfocus|focusoutblur)$/, Z = /^([^.]*)(?:\.(.+)|)$/;
    h.event = {global: {},add: function(e, t, n, r, i) {
            var s, o, u, a, f, l, c, p, d, v, m, g = h._data(e);
            if (!g)
                return;
            n.handler && (a = n, n = a.handler, i = a.selector), n.guid || (n.guid = h.guid++), (o = g.events) || (o = g.events = {}), (l = g.handle) || (l = g.handle = function(e) {
                return typeof h === B || !!e && h.event.triggered === e.type ? undefined : h.event.dispatch.apply(l.elem, arguments)
            }, l.elem = e), t = (t || "").match(O) || [""], u = t.length;
            while (u--) {
                s = Z.exec(t[u]) || [], d = m = s[1], v = (s[2] || "").split(".").sort();
                if (!d)
                    continue;
                f = h.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = h.event.special[d] || {}, c = h.extend({type: d,origType: m,data: r,handler: n,guid: n.guid,selector: i,needsContext: i && h.expr.match.needsContext.test(i),namespace: v.join(".")}, a);
                if (!(p = o[d])) {
                    p = o[d] = [], p.delegateCount = 0;
                    if (!f.setup || f.setup.call(e, r, v, l) === !1)
                        e.addEventListener ? e.addEventListener(d, l, !1) : e.attachEvent && e.attachEvent("on" + d, l)
                }
                f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), h.event.global[d] = !0
            }
            e = null
        },remove: function(e, t, n, r, i) {
            var s, o, u, a, f, l, c, p, d, v, m, g = h.hasData(e) && h._data(e);
            if (!g || !(l = g.events))
                return;
            t = (t || "").match(O) || [""], f = t.length;
            while (f--) {
                u = Z.exec(t[f]) || [], d = m = u[1], v = (u[2] || "").split(".").sort();
                if (!d) {
                    for (d in l)
                        h.event.remove(e, d + t[f], n, r, !0);
                    continue
                }
                c = h.event.special[d] || {}, d = (r ? c.delegateType : c.bindType) || d, p = l[d] || [], u = u[2] && new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = s = p.length;
                while (s--)
                    o = p[s], (i || m === o.origType) && (!n || n.guid === o.guid) && (!u || u.test(o.namespace)) && (!r || r === o.selector || r === "**" && o.selector) && (p.splice(s, 1), o.selector && p.delegateCount--, c.remove && c.remove.call(e, o));
                a && !p.length && ((!c.teardown || c.teardown.call(e, v, g.handle) === !1) && h.removeEvent(e, d, g.handle), delete l[d])
            }
            h.isEmptyObject(l) && (delete g.handle, h._removeData(e, "events"))
        },trigger: function(t, n, r, i) {
            var s, o, u, a, l, c, p, d = [r || T], v = f.call(t, "type") ? t.type : t, m = f.call(t, "namespace") ? t.namespace.split(".") : [];
            u = c = r = r || T;
            if (r.nodeType === 3 || r.nodeType === 8)
                return;
            if (Y.test(v + h.event.triggered))
                return;
            v.indexOf(".") >= 0 && (m = v.split("."), v = m.shift(), m.sort()), o = v.indexOf(":") < 0 && "on" + v, t = t[h.expando] ? t : new h.Event(v, typeof t == "object" && t), t.isTrigger = i ? 2 : 3, t.namespace = m.join("."), t.namespace_re = t.namespace ? new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = undefined, t.target || (t.target = r), n = n == null ? [t] : h.makeArray(n, [t]), l = h.event.special[v] || {};
            if (!i && l.trigger && l.trigger.apply(r, n) === !1)
                return;
            if (!i && !l.noBubble && !h.isWindow(r)) {
                a = l.delegateType || v, Y.test(a + v) || (u = u.parentNode);
                for (; u; u = u.parentNode)
                    d.push(u), c = u;
                c === (r.ownerDocument || T) && d.push(c.defaultView || c.parentWindow || e)
            }
            p = 0;
            while ((u = d[p++]) && !t.isPropagationStopped())
                t.type = p > 1 ? a : l.bindType || v, s = (h._data(u, "events") || {})[t.type] && h._data(u, "handle"), s && s.apply(u, n), s = o && u[o], s && s.apply && h.acceptData(u) && (t.result = s.apply(u, n), t.result === !1 && t.preventDefault());
            t.type = v;
            if (!i && !t.isDefaultPrevented() && (!l._default || l._default.apply(d.pop(), n) === !1) && h.acceptData(r) && o && r[v] && !h.isWindow(r)) {
                c = r[o], c && (r[o] = null), h.event.triggered = v;
                try {
                    r[v]()
                } catch (g) {
                }
                h.event.triggered = undefined, c && (r[o] = c)
            }
            return t.result
        },dispatch: function(e) {
            e = h.event.fix(e);
            var t, n, i, s, o, u = [], a = r.call(arguments), f = (h._data(this, "events") || {})[e.type] || [], l = h.event.special[e.type] || {};
            a[0] = e, e.delegateTarget = this;
            if (l.preDispatch && l.preDispatch.call(this, e) === !1)
                return;
            u = h.event.handlers.call(this, e, f), t = 0;
            while ((s = u[t++]) && !e.isPropagationStopped()) {
                e.currentTarget = s.elem, o = 0;
                while ((i = s.handlers[o++]) && !e.isImmediatePropagationStopped())
                    if (!e.namespace_re || e.namespace_re.test(i.namespace))
                        e.handleObj = i, e.data = i.data, n = ((h.event.special[i.origType] || {}).handle || i.handler).apply(s.elem, a), n !== undefined && (e.result = n) === !1 && (e.preventDefault(), e.stopPropagation())
            }
            return l.postDispatch && l.postDispatch.call(this, e), e.result
        },handlers: function(e, t) {
            var n, r, i, s, o = [], u = t.delegateCount, a = e.target;
            if (u && a.nodeType && (!e.button || e.type !== "click"))
                for (; a != this; a = a.parentNode || this)
                    if (a.nodeType === 1 && (a.disabled !== !0 || e.type !== "click")) {
                        i = [];
                        for (s = 0; s < u; s++)
                            r = t[s], n = r.selector + " ", i[n] === undefined && (i[n] = r.needsContext ? h(n, this).index(a) >= 0 : h.find(n, this, null, [a]).length), i[n] && i.push(r);
                        i.length && o.push({elem: a,handlers: i})
                    }
            return u < t.length && o.push({elem: this,handlers: t.slice(u)}), o
        },fix: function(e) {
            if (e[h.expando])
                return e;
            var t, n, r, i = e.type, s = e, o = this.fixHooks[i];
            o || (this.fixHooks[i] = o = G.test(i) ? this.mouseHooks : Q.test(i) ? this.keyHooks : {}), r = o.props ? this.props.concat(o.props) : this.props, e = new h.Event(s), t = r.length;
            while (t--)
                n = r[t], e[n] = s[n];
            return e.target || (e.target = s.srcElement || T), e.target.nodeType === 3 && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, o.filter ? o.filter(e, s) : e
        },props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks: {},keyHooks: {props: "char charCode key keyCode".split(" "),filter: function(e, t) {
                return e.which == null && (e.which = t.charCode != null ? t.charCode : t.keyCode), e
            }},mouseHooks: {props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter: function(e, t) {
                var n, r, i, s = t.button, o = t.fromElement;
                return e.pageX == null && t.clientX != null && (r = e.target.ownerDocument || T, i = r.documentElement, n = r.body, e.pageX = t.clientX + (i && i.scrollLeft || n && n.scrollLeft || 0) - (i && i.clientLeft || n && n.clientLeft || 0), e.pageY = t.clientY + (i && i.scrollTop || n && n.scrollTop || 0) - (i && i.clientTop || n && n.clientTop || 0)), !e.relatedTarget && o && (e.relatedTarget = o === e.target ? t.toElement : o), !e.which && s !== undefined && (e.which = s & 1 ? 1 : s & 2 ? 3 : s & 4 ? 2 : 0), e
            }},special: {load: {noBubble: !0},focus: {trigger: function() {
                    if (this !== nt() && this.focus)
                        try {
                            return this.focus(), !1
                        } catch (e) {
                        }
                },delegateType: "focusin"},blur: {trigger: function() {
                    if (this === nt() && this.blur)
                        return this.blur(), !1
                },delegateType: "focusout"},click: {trigger: function() {
                    if (h.nodeName(this, "input") && this.type === "checkbox" && this.click)
                        return this.click(), !1
                },_default: function(e) {
                    return h.nodeName(e.target, "a")
                }},beforeunload: {postDispatch: function(e) {
                    e.result !== undefined && e.originalEvent && (e.originalEvent.returnValue = e.result)
                }}},simulate: function(e, t, n, r) {
            var i = h.extend(new h.Event, n, {type: e,isSimulated: !0,originalEvent: {}});
            r ? h.event.trigger(i, null, t) : h.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault()
        }}, h.removeEvent = T.removeEventListener ? function(e, t, n) {
        e.removeEventListener && e.removeEventListener(t, n, !1)
    } : function(e, t, n) {
        var r = "on" + t;
        e.detachEvent && (typeof e[r] === B && (e[r] = null), e.detachEvent(r, n))
    }, h.Event = function(e, t) {
        if (!(this instanceof h.Event))
            return new h.Event(e, t);
        e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.defaultPrevented === undefined && e.returnValue === !1 ? et : tt) : this.type = e, t && h.extend(this, t), this.timeStamp = e && e.timeStamp || h.now(), this[h.expando] = !0
    }, h.Event.prototype = {isDefaultPrevented: tt,isPropagationStopped: tt,isImmediatePropagationStopped: tt,preventDefault: function() {
            var e = this.originalEvent;
            this.isDefaultPrevented = et;
            if (!e)
                return;
            e.preventDefault ? e.preventDefault() : e.returnValue = !1
        },stopPropagation: function() {
            var e = this.originalEvent;
            this.isPropagationStopped = et;
            if (!e)
                return;
            e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0
        },stopImmediatePropagation: function() {
            var e = this.originalEvent;
            this.isImmediatePropagationStopped = et, e && e.stopImmediatePropagation && e.stopImmediatePropagation(), this.stopPropagation()
        }}, h.each({mouseenter: "mouseover",mouseleave: "mouseout",pointerenter: "pointerover",pointerleave: "pointerout"}, function(e, t) {
        h.event.special[e] = {delegateType: t,bindType: t,handle: function(e) {
                var n, r = this, i = e.relatedTarget, s = e.handleObj;
                if (!i || i !== r && !h.contains(r, i))
                    e.type = s.origType, n = s.handler.apply(this, arguments), e.type = t;
                return n
            }}
    }), l.submitBubbles || (h.event.special.submit = {setup: function() {
            if (h.nodeName(this, "form"))
                return !1;
            h.event.add(this, "click._submit keypress._submit", function(e) {
                var t = e.target, n = h.nodeName(t, "input") || h.nodeName(t, "button") ? t.form : undefined;
                n && !h._data(n, "submitBubbles") && (h.event.add(n, "submit._submit", function(e) {
                    e._submit_bubble = !0
                }), h._data(n, "submitBubbles", !0))
            })
        },postDispatch: function(e) {
            e._submit_bubble && (delete e._submit_bubble, this.parentNode && !e.isTrigger && h.event.simulate("submit", this.parentNode, e, !0))
        },teardown: function() {
            if (h.nodeName(this, "form"))
                return !1;
            h.event.remove(this, "._submit")
        }}), l.changeBubbles || (h.event.special.change = {setup: function() {
            if (K.test(this.nodeName)) {
                if (this.type === "checkbox" || this.type === "radio")
                    h.event.add(this, "propertychange._change", function(e) {
                        e.originalEvent.propertyName === "checked" && (this._just_changed = !0)
                    }), h.event.add(this, "click._change", function(e) {
                        this._just_changed && !e.isTrigger && (this._just_changed = !1), h.event.simulate("change", this, e, !0)
                    });
                return !1
            }
            h.event.add(this, "beforeactivate._change", function(e) {
                var t = e.target;
                K.test(t.nodeName) && !h._data(t, "changeBubbles") && (h.event.add(t, "change._change", function(e) {
                    this.parentNode && !e.isSimulated && !e.isTrigger && h.event.simulate("change", this.parentNode, e, !0)
                }), h._data(t, "changeBubbles", !0))
            })
        },handle: function(e) {
            var t = e.target;
            if (this !== t || e.isSimulated || e.isTrigger || t.type !== "radio" && t.type !== "checkbox")
                return e.handleObj.handler.apply(this, arguments)
        },teardown: function() {
            return h.event.remove(this, "._change"), !K.test(this.nodeName)
        }}), l.focusinBubbles || h.each({focus: "focusin",blur: "focusout"}, function(e, t) {
        var n = function(e) {
            h.event.simulate(t, e.target, h.event.fix(e), !0)
        };
        h.event.special[t] = {setup: function() {
                var r = this.ownerDocument || this, i = h._data(r, t);
                i || r.addEventListener(e, n, !0), h._data(r, t, (i || 0) + 1)
            },teardown: function() {
                var r = this.ownerDocument || this, i = h._data(r, t) - 1;
                i ? h._data(r, t, i) : (r.removeEventListener(e, n, !0), h._removeData(r, t))
            }}
    }), h.fn.extend({on: function(e, t, n, r, i) {
            var s, o;
            if (typeof e == "object") {
                typeof t != "string" && (n = n || t, t = undefined);
                for (s in e)
                    this.on(s, t, n, e[s], i);
                return this
            }
            n == null && r == null ? (r = t, n = t = undefined) : r == null && (typeof t == "string" ? (r = n, n = undefined) : (r = n, n = t, t = undefined));
            if (r === !1)
                r = tt;
            else if (!r)
                return this;
            return i === 1 && (o = r, r = function(e) {
                return h().off(e), o.apply(this, arguments)
            }, r.guid = o.guid || (o.guid = h.guid++)), this.each(function() {
                h.event.add(this, e, r, n, t)
            })
        },one: function(e, t, n, r) {
            return this.on(e, t, n, r, 1)
        },off: function(e, t, n) {
            var r, i;
            if (e && e.preventDefault && e.handleObj)
                return r = e.handleObj, h(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
            if (typeof e == "object") {
                for (i in e)
                    this.off(i, t, e[i]);
                return this
            }
            if (t === !1 || typeof t == "function")
                n = t, t = undefined;
            return n === !1 && (n = tt), this.each(function() {
                h.event.remove(this, e, n, t)
            })
        },trigger: function(e, t) {
            return this.each(function() {
                h.event.trigger(e, t, this)
            })
        },triggerHandler: function(e, t) {
            var n = this[0];
            if (n)
                return h.event.trigger(e, t, n, !0)
        }});
    var it = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", st = / jQuery\d+="(?:null|\d+)"/g, ot = new RegExp("<(?:" + it + ")[\\s/>]", "i"), ut = /^\s+/, at = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, ft = /<([\w:]+)/, lt = /<tbody/i, ct = /<|&#?\w+;/, ht = /<(?:script|style|link)/i, pt = /checked\s*(?:[^=]|=\s*.checked.)/i, dt = /^$|\/(?:java|ecma)script/i, vt = /^true\/(.*)/, mt = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, gt = {option: [1, "<select multiple='multiple'>", "</select>"],legend: [1, "<fieldset>", "</fieldset>"],area: [1, "<map>", "</map>"],param: [1, "<object>", "</object>"],thead: [1, "<table>", "</table>"],tr: [2, "<table><tbody>", "</tbody></table>"],col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],_default: l.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]}, yt = rt(T), bt = yt.appendChild(T.createElement("div"));
    gt.optgroup = gt.option, gt.tbody = gt.tfoot = gt.colgroup = gt.caption = gt.thead, gt.th = gt.td, h.extend({clone: function(e, t, n) {
            var r, i, s, o, u, a = h.contains(e.ownerDocument, e);
            l.html5Clone || h.isXMLDoc(e) || !ot.test("<" + e.nodeName + ">") ? s = e.cloneNode(!0) : (bt.innerHTML = e.outerHTML, bt.removeChild(s = bt.firstChild));
            if ((!l.noCloneEvent || !l.noCloneChecked) && (e.nodeType === 1 || e.nodeType === 11) && !h.isXMLDoc(e)) {
                r = wt(s), u = wt(e);
                for (o = 0; (i = u[o]) != null; ++o)
                    r[o] && kt(i, r[o])
            }
            if (t)
                if (n) {
                    u = u || wt(e), r = r || wt(s);
                    for (o = 0; (i = u[o]) != null; o++)
                        Ct(i, r[o])
                } else
                    Ct(e, s);
            return r = wt(s, "script"), r.length > 0 && Nt(r, !a && wt(e, "script")), r = u = i = null, s
        },buildFragment: function(e, t, n, r) {
            var i, s, o, u, a, f, c, p = e.length, d = rt(t), v = [], m = 0;
            for (; m < p; m++) {
                s = e[m];
                if (s || s === 0)
                    if (h.type(s) === "object")
                        h.merge(v, s.nodeType ? [s] : s);
                    else if (!ct.test(s))
                        v.push(t.createTextNode(s));
                    else {
                        u = u || d.appendChild(t.createElement("div")), a = (ft.exec(s) || ["", ""])[1].toLowerCase(), c = gt[a] || gt._default, u.innerHTML = c[1] + s.replace(at, "<$1></$2>") + c[2], i = c[0];
                        while (i--)
                            u = u.lastChild;
                        !l.leadingWhitespace && ut.test(s) && v.push(t.createTextNode(ut.exec(s)[0]));
                        if (!l.tbody) {
                            s = a === "table" && !lt.test(s) ? u.firstChild : c[1] === "<table>" && !lt.test(s) ? u : 0, i = s && s.childNodes.length;
                            while (i--)
                                h.nodeName(f = s.childNodes[i], "tbody") && !f.childNodes.length && s.removeChild(f)
                        }
                        h.merge(v, u.childNodes), u.textContent = "";
                        while (u.firstChild)
                            u.removeChild(u.firstChild);
                        u = d.lastChild
                    }
            }
            u && d.removeChild(u), l.appendChecked || h.grep(wt(v, "input"), Et), m = 0;
            while (s = v[m++]) {
                if (r && h.inArray(s, r) !== -1)
                    continue;
                o = h.contains(s.ownerDocument, s), u = wt(d.appendChild(s), "script"), o && Nt(u);
                if (n) {
                    i = 0;
                    while (s = u[i++])
                        dt.test(s.type || "") && n.push(s)
                }
            }
            return u = null, d
        },cleanData: function(e, t) {
            var r, i, s, o, u = 0, a = h.expando, f = h.cache, c = l.deleteExpando, p = h.event.special;
            for (; (r = e[u]) != null; u++)
                if (t || h.acceptData(r)) {
                    s = r[a], o = s && f[s];
                    if (o) {
                        if (o.events)
                            for (i in o.events)
                                p[i] ? h.event.remove(r, i) : h.removeEvent(r, i, o.handle);
                        f[s] && (delete f[s], c ? delete r[a] : typeof r.removeAttribute !== B ? r.removeAttribute(a) : r[a] = null, n.push(s))
                    }
                }
        }}), h.fn.extend({text: function(e) {
            return $(this, function(e) {
                return e === undefined ? h.text(this) : this.empty().append((this[0] && this[0].ownerDocument || T).createTextNode(e))
            }, null, e, arguments.length)
        },append: function() {
            return this.domManip(arguments, function(e) {
                if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {
                    var t = St(this, e);
                    t.appendChild(e)
                }
            })
        },prepend: function() {
            return this.domManip(arguments, function(e) {
                if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {
                    var t = St(this, e);
                    t.insertBefore(e, t.firstChild)
                }
            })
        },before: function() {
            return this.domManip(arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this)
            })
        },after: function() {
            return this.domManip(arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
            })
        },remove: function(e, t) {
            var n, r = e ? h.filter(e, this) : this, i = 0;
            for (; (n = r[i]) != null; i++)
                !t && n.nodeType === 1 && h.cleanData(wt(n)), n.parentNode && (t && h.contains(n.ownerDocument, n) && Nt(wt(n, "script")), n.parentNode.removeChild(n));
            return this
        },empty: function() {
            var e, t = 0;
            for (; (e = this[t]) != null; t++) {
                e.nodeType === 1 && h.cleanData(wt(e, !1));
                while (e.firstChild)
                    e.removeChild(e.firstChild);
                e.options && h.nodeName(e, "select") && (e.options.length = 0)
            }
            return this
        },clone: function(e, t) {
            return e = e == null ? !1 : e, t = t == null ? e : t, this.map(function() {
                return h.clone(this, e, t)
            })
        },html: function(e) {
            return $(this, function(e) {
                var t = this[0] || {}, n = 0, r = this.length;
                if (e === undefined)
                    return t.nodeType === 1 ? t.innerHTML.replace(st, "") : undefined;
                if (typeof e == "string" && !ht.test(e) && (l.htmlSerialize || !ot.test(e)) && (l.leadingWhitespace || !ut.test(e)) && !gt[(ft.exec(e) || ["", ""])[1].toLowerCase()]) {
                    e = e.replace(at, "<$1></$2>");
                    try {
                        for (; n < r; n++)
                            t = this[n] || {}, t.nodeType === 1 && (h.cleanData(wt(t, !1)), t.innerHTML = e);
                        t = 0
                    } catch (i) {
                    }
                }
                t && this.empty().append(e)
            }, null, e, arguments.length)
        },replaceWith: function() {
            var e = arguments[0];
            return this.domManip(arguments, function(t) {
                e = this.parentNode, h.cleanData(wt(this)), e && e.replaceChild(t, this)
            }), e && (e.length || e.nodeType) ? this : this.remove()
        },detach: function(e) {
            return this.remove(e, !0)
        },domManip: function(e, t) {
            e = i.apply([], e);
            var n, r, s, o, u, a, f = 0, c = this.length, p = this, d = c - 1, v = e[0], m = h.isFunction(v);
            if (m || c > 1 && typeof v == "string" && !l.checkClone && pt.test(v))
                return this.each(function(n) {
                    var r = p.eq(n);
                    m && (e[0] = v.call(this, n, r.html())), r.domManip(e, t)
                });
            if (c) {
                a = h.buildFragment(e, this[0].ownerDocument, !1, this), n = a.firstChild, a.childNodes.length === 1 && (a = n);
                if (n) {
                    o = h.map(wt(a, "script"), xt), s = o.length;
                    for (; f < c; f++)
                        r = a, f !== d && (r = h.clone(r, !0, !0), s && h.merge(o, wt(r, "script"))), t.call(this[f], r, f);
                    if (s) {
                        u = o[o.length - 1].ownerDocument, h.map(o, Tt);
                        for (f = 0; f < s; f++)
                            r = o[f], dt.test(r.type || "") && !h._data(r, "globalEval") && h.contains(u, r) && (r.src ? h._evalUrl && h._evalUrl(r.src) : h.globalEval((r.text || r.textContent || r.innerHTML || "").replace(mt, "")))
                    }
                    a = n = null
                }
            }
            return this
        }}), h.each({appendTo: "append",prependTo: "prepend",insertBefore: "before",insertAfter: "after",replaceAll: "replaceWith"}, function(e, t) {
        h.fn[e] = function(e) {
            var n, r = 0, i = [], o = h(e), u = o.length - 1;
            for (; r <= u; r++)
                n = r === u ? this : this.clone(!0), h(o[r])[t](n), s.apply(i, n.get());
            return this.pushStack(i)
        }
    });
    var Lt, At = {};
    (function() {
        var e;
        l.shrinkWrapBlocks = function() {
            if (e != null)
                return e;
            e = !1;
            var t, n, r;
            n = T.getElementsByTagName("body")[0];
            if (!n || !n.style)
                return;
            return t = T.createElement("div"), r = T.createElement("div"), r.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(r).appendChild(t), typeof t.style.zoom !== B && (t.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", t.appendChild(T.createElement("div")).style.width = "5px", e = t.offsetWidth !== 3), n.removeChild(r), e
        }
    })();
    var _t = /^margin/, Dt = new RegExp("^(" + W + ")(?!px)[a-z%]+$", "i"), Pt, Ht, Bt = /^(top|right|bottom|left)$/;
    e.getComputedStyle ? (Pt = function(e) {
        return e.ownerDocument.defaultView.getComputedStyle(e, null)
    }, Ht = function(e, t, n) {
        var r, i, s, o, u = e.style;
        return n = n || Pt(e), o = n ? n.getPropertyValue(t) || n[t] : undefined, n && (o === "" && !h.contains(e.ownerDocument, e) && (o = h.style(e, t)), Dt.test(o) && _t.test(t) && (r = u.width, i = u.minWidth, s = u.maxWidth, u.minWidth = u.maxWidth = u.width = o, o = n.width, u.width = r, u.minWidth = i, u.maxWidth = s)), o === undefined ? o : o + ""
    }) : T.documentElement.currentStyle && (Pt = function(e) {
        return e.currentStyle
    }, Ht = function(e, t, n) {
        var r, i, s, o, u = e.style;
        return n = n || Pt(e), o = n ? n[t] : undefined, o == null && u && u[t] && (o = u[t]), Dt.test(o) && !Bt.test(t) && (r = u.left, i = e.runtimeStyle, s = i && i.left, s && (i.left = e.currentStyle.left), u.left = t === "fontSize" ? "1em" : o, o = u.pixelLeft + "px", u.left = r, s && (i.left = s)), o === undefined ? o : o + "" || "auto"
    }), function() {
        function a() {
            var t, n, r, a;
            n = T.getElementsByTagName("body")[0];
            if (!n || !n.style)
                return;
            t = T.createElement("div"), r = T.createElement("div"), r.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(r).appendChild(t), t.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", i = s = !1, u = !0, e.getComputedStyle && (i = (e.getComputedStyle(t, null) || {}).top !== "1%", s = (e.getComputedStyle(t, null) || {width: "4px"}).width === "4px", a = t.appendChild(T.createElement("div")), a.style.cssText = t.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", a.style.marginRight = a.style.width = "0", t.style.width = "1px", u = !parseFloat((e.getComputedStyle(a, null) || {}).marginRight)), t.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", a = t.getElementsByTagName("td"), a[0].style.cssText = "margin:0;border:0;padding:0;display:none", o = a[0].offsetHeight === 0, o && (a[0].style.display = "", a[1].style.display = "none", o = a[0].offsetHeight === 0), n.removeChild(r)
        }
        var t, n, r, i, s, o, u;
        t = T.createElement("div"), t.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", r = t.getElementsByTagName("a")[0], n = r && r.style;
        if (!n)
            return;
        n.cssText = "float:left;opacity:.5", l.opacity = n.opacity === "0.5", l.cssFloat = !!n.cssFloat, t.style.backgroundClip = "content-box", t.cloneNode(!0).style.backgroundClip = "", l.clearCloneStyle = t.style.backgroundClip === "content-box", l.boxSizing = n.boxSizing === "" || n.MozBoxSizing === "" || n.WebkitBoxSizing === "", h.extend(l, {reliableHiddenOffsets: function() {
                return o == null && a(), o
            },boxSizingReliable: function() {
                return s == null && a(), s
            },pixelPosition: function() {
                return i == null && a(), i
            },reliableMarginRight: function() {
                return u == null && a(), u
            }})
    }(), h.swap = function(e, t, n, r) {
        var i, s, o = {};
        for (s in t)
            o[s] = e.style[s], e.style[s] = t[s];
        i = n.apply(e, r || []);
        for (s in t)
            e.style[s] = o[s];
        return i
    };
    var Ft = /alpha\([^)]*\)/i, It = /opacity\s*=\s*([^)]*)/, qt = /^(none|table(?!-c[ea]).+)/, Rt = new RegExp("^(" + W + ")(.*)$", "i"), Ut = new RegExp("^([+-])=(" + W + ")", "i"), zt = {position: "absolute",visibility: "hidden",display: "block"}, Wt = {letterSpacing: "0",fontWeight: "400"}, Xt = ["Webkit", "O", "Moz", "ms"];
    h.extend({cssHooks: {opacity: {get: function(e, t) {
                    if (t) {
                        var n = Ht(e, "opacity");
                        return n === "" ? "1" : n
                    }
                }}},cssNumber: {columnCount: !0,fillOpacity: !0,flexGrow: !0,flexShrink: !0,fontWeight: !0,lineHeight: !0,opacity: !0,order: !0,orphans: !0,widows: !0,zIndex: !0,zoom: !0},cssProps: {"float": l.cssFloat ? "cssFloat" : "styleFloat"},style: function(e, t, n, r) {
            if (!e || e.nodeType === 3 || e.nodeType === 8 || !e.style)
                return;
            var i, s, o, u = h.camelCase(t), a = e.style;
            t = h.cssProps[u] || (h.cssProps[u] = Vt(a, u)), o = h.cssHooks[t] || h.cssHooks[u];
            if (n === undefined)
                return o && "get" in o && (i = o.get(e, !1, r)) !== undefined ? i : a[t];
            s = typeof n, s === "string" && (i = Ut.exec(n)) && (n = (i[1] + 1) * i[2] + parseFloat(h.css(e, t)), s = "number");
            if (n == null || n !== n)
                return;
            s === "number" && !h.cssNumber[u] && (n += "px"), !l.clearCloneStyle && n === "" && t.indexOf("background") === 0 && (a[t] = "inherit");
            if (!o || !("set" in o) || (n = o.set(e, n, r)) !== undefined)
                try {
                    a[t] = n
                } catch (f) {
                }
        },css: function(e, t, n, r) {
            var i, s, o, u = h.camelCase(t);
            return t = h.cssProps[u] || (h.cssProps[u] = Vt(e.style, u)), o = h.cssHooks[t] || h.cssHooks[u], o && "get" in o && (s = o.get(e, !0, n)), s === undefined && (s = Ht(e, t, r)), s === "normal" && t in Wt && (s = Wt[t]), n === "" || n ? (i = parseFloat(s), n === !0 || h.isNumeric(i) ? i || 0 : s) : s
        }}), h.each(["height", "width"], function(e, t) {
        h.cssHooks[t] = {get: function(e, n, r) {
                if (n)
                    return qt.test(h.css(e, "display")) && e.offsetWidth === 0 ? h.swap(e, zt, function() {
                        return Qt(e, t, r)
                    }) : Qt(e, t, r)
            },set: function(e, n, r) {
                var i = r && Pt(e);
                return Jt(e, n, r ? Kt(e, t, r, l.boxSizing && h.css(e, "boxSizing", !1, i) === "border-box", i) : 0)
            }}
    }), l.opacity || (h.cssHooks.opacity = {get: function(e, t) {
            return It.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
        },set: function(e, t) {
            var n = e.style, r = e.currentStyle, i = h.isNumeric(t) ? "alpha(opacity=" + t * 100 + ")" : "", s = r && r.filter || n.filter || "";
            n.zoom = 1;
            if ((t >= 1 || t === "") && h.trim(s.replace(Ft, "")) === "" && n.removeAttribute) {
                n.removeAttribute("filter");
                if (t === "" || r && !r.filter)
                    return
            }
            n.filter = Ft.test(s) ? s.replace(Ft, i) : s + " " + i
        }}), h.cssHooks.marginRight = jt(l.reliableMarginRight, function(e, t) {
        if (t)
            return h.swap(e, {display: "inline-block"}, Ht, [e, "marginRight"])
    }), h.each({margin: "",padding: "",border: "Width"}, function(e, t) {
        h.cssHooks[e + t] = {expand: function(n) {
                var r = 0, i = {}, s = typeof n == "string" ? n.split(" ") : [n];
                for (; r < 4; r++)
                    i[e + X[r] + t] = s[r] || s[r - 2] || s[0];
                return i
            }}, _t.test(e) || (h.cssHooks[e + t].set = Jt)
    }), h.fn.extend({css: function(e, t) {
            return $(this, function(e, t, n) {
                var r, i, s = {}, o = 0;
                if (h.isArray(t)) {
                    r = Pt(e), i = t.length;
                    for (; o < i; o++)
                        s[t[o]] = h.css(e, t[o], !1, r);
                    return s
                }
                return n !== undefined ? h.style(e, t, n) : h.css(e, t)
            }, e, t, arguments.length > 1)
        },show: function() {
            return $t(this, !0)
        },hide: function() {
            return $t(this)
        },toggle: function(e) {
            return typeof e == "boolean" ? e ? this.show() : this.hide() : this.each(function() {
                V(this) ? h(this).show() : h(this).hide()
            })
        }}), h.Tween = Gt, Gt.prototype = {constructor: Gt,init: function(e, t, n, r, i, s) {
            this.elem = e, this.prop = n, this.easing = i || "swing", this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = s || (h.cssNumber[n] ? "" : "px")
        },cur: function() {
            var e = Gt.propHooks[this.prop];
            return e && e.get ? e.get(this) : Gt.propHooks._default.get(this)
        },run: function(e) {
            var t, n = Gt.propHooks[this.prop];
            return this.options.duration ? this.pos = t = h.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Gt.propHooks._default.set(this), this
        }}, Gt.prototype.init.prototype = Gt.prototype, Gt.propHooks = {_default: {get: function(e) {
                var t;
                return e.elem[e.prop] == null || !!e.elem.style && e.elem.style[e.prop] != null ? (t = h.css(e.elem, e.prop, ""), !t || t === "auto" ? 0 : t) : e.elem[e.prop]
            },set: function(e) {
                h.fx.step[e.prop] ? h.fx.step[e.prop](e) : e.elem.style && (e.elem.style[h.cssProps[e.prop]] != null || h.cssHooks[e.prop]) ? h.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
            }}}, Gt.propHooks.scrollTop = Gt.propHooks.scrollLeft = {set: function(e) {
            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
        }}, h.easing = {linear: function(e) {
            return e
        },swing: function(e) {
            return .5 - Math.cos(e * Math.PI) / 2
        }}, h.fx = Gt.prototype.init, h.fx.step = {};
    var Yt, Zt, en = /^(?:toggle|show|hide)$/, tn = new RegExp("^(?:([+-])=|)(" + W + ")([a-z%]*)$", "i"), nn = /queueHooks$/, rn = [fn], sn = {"*": [function(e, t) {
                var n = this.createTween(e, t), r = n.cur(), i = tn.exec(t), s = i && i[3] || (h.cssNumber[e] ? "" : "px"), o = (h.cssNumber[e] || s !== "px" && +r) && tn.exec(h.css(n.elem, e)), u = 1, a = 20;
                if (o && o[3] !== s) {
                    s = s || o[3], i = i || [], o = +r || 1;
                    do
                        u = u || ".5", o /= u, h.style(n.elem, e, o + s);
                    while (u !== (u = n.cur() / r) && u !== 1 && --a)
                }
                return i && (o = n.start = +o || +r || 0, n.unit = s, n.end = i[1] ? o + (i[1] + 1) * i[2] : +i[2]), n
            }]};
    h.Animation = h.extend(cn, {tweener: function(e, t) {
            h.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" ");
            var n, r = 0, i = e.length;
            for (; r < i; r++)
                n = e[r], sn[n] = sn[n] || [], sn[n].unshift(t)
        },prefilter: function(e, t) {
            t ? rn.unshift(e) : rn.push(e)
        }}), h.speed = function(e, t, n) {
        var r = e && typeof e == "object" ? h.extend({}, e) : {complete: n || !n && t || h.isFunction(e) && e,duration: e,easing: n && t || t && !h.isFunction(t) && t};
        r.duration = h.fx.off ? 0 : typeof r.duration == "number" ? r.duration : r.duration in h.fx.speeds ? h.fx.speeds[r.duration] : h.fx.speeds._default;
        if (r.queue == null || r.queue === !0)
            r.queue = "fx";
        return r.old = r.complete, r.complete = function() {
            h.isFunction(r.old) && r.old.call(this), r.queue && h.dequeue(this, r.queue)
        }, r
    }, h.fn.extend({fadeTo: function(e, t, n, r) {
            return this.filter(V).css("opacity", 0).show().end().animate({opacity: t}, e, n, r)
        },animate: function(e, t, n, r) {
            var i = h.isEmptyObject(e), s = h.speed(t, n, r), o = function() {
                var t = cn(this, h.extend({}, e), s);
                (i || h._data(this, "finish")) && t.stop(!0)
            };
            return o.finish = o, i || s.queue === !1 ? this.each(o) : this.queue(s.queue, o)
        },stop: function(e, t, n) {
            var r = function(e) {
                var t = e.stop;
                delete e.stop, t(n)
            };
            return typeof e != "string" && (n = t, t = e, e = undefined), t && e !== !1 && this.queue(e || "fx", []), this.each(function() {
                var t = !0, i = e != null && e + "queueHooks", s = h.timers, o = h._data(this);
                if (i)
                    o[i] && o[i].stop && r(o[i]);
                else
                    for (i in o)
                        o[i] && o[i].stop && nn.test(i) && r(o[i]);
                for (i = s.length; i--; )
                    s[i].elem === this && (e == null || s[i].queue === e) && (s[i].anim.stop(n), t = !1, s.splice(i, 1));
                (t || !n) && h.dequeue(this, e)
            })
        },finish: function(e) {
            return e !== !1 && (e = e || "fx"), this.each(function() {
                var t, n = h._data(this), r = n[e + "queue"], i = n[e + "queueHooks"], s = h.timers, o = r ? r.length : 0;
                n.finish = !0, h.queue(this, e, []), i && i.stop && i.stop.call(this, !0);
                for (t = s.length; t--; )
                    s[t].elem === this && s[t].queue === e && (s[t].anim.stop(!0), s.splice(t, 1));
                for (t = 0; t < o; t++)
                    r[t] && r[t].finish && r[t].finish.call(this);
                delete n.finish
            })
        }}), h.each(["toggle", "show", "hide"], function(e, t) {
        var n = h.fn[t];
        h.fn[t] = function(e, r, i) {
            return e == null || typeof e == "boolean" ? n.apply(this, arguments) : this.animate(un(t, !0), e, r, i)
        }
    }), h.each({slideDown: un("show"),slideUp: un("hide"),slideToggle: un("toggle"),fadeIn: {opacity: "show"},fadeOut: {opacity: "hide"},fadeToggle: {opacity: "toggle"}}, function(e, t) {
        h.fn[e] = function(e, n, r) {
            return this.animate(t, e, n, r)
        }
    }), h.timers = [], h.fx.tick = function() {
        var e, t = h.timers, n = 0;
        Yt = h.now();
        for (; n < t.length; n++)
            e = t[n], !e() && t[n] === e && t.splice(n--, 1);
        t.length || h.fx.stop(), Yt = undefined
    }, h.fx.timer = function(e) {
        h.timers.push(e), e() ? h.fx.start() : h.timers.pop()
    }, h.fx.interval = 13, h.fx.start = function() {
        Zt || (Zt = setInterval(h.fx.tick, h.fx.interval))
    }, h.fx.stop = function() {
        clearInterval(Zt), Zt = null
    }, h.fx.speeds = {slow: 600,fast: 200,_default: 400}, h.fn.delay = function(e, t) {
        return e = h.fx ? h.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function(t, n) {
            var r = setTimeout(t, e);
            n.stop = function() {
                clearTimeout(r)
            }
        })
    }, function() {
        var e, t, n, r, i;
        t = T.createElement("div"), t.setAttribute("className", "t"), t.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", r = t.getElementsByTagName("a")[0], n = T.createElement("select"), i = n.appendChild(T.createElement("option")), e = t.getElementsByTagName("input")[0], r.style.cssText = "top:1px", l.getSetAttribute = t.className !== "t", l.style = /top/.test(r.getAttribute("style")), l.hrefNormalized = r.getAttribute("href") === "/a", l.checkOn = !!e.value, l.optSelected = i.selected, l.enctype = !!T.createElement("form").enctype, n.disabled = !0, l.optDisabled = !i.disabled, e = T.createElement("input"), e.setAttribute("value", ""), l.input = e.getAttribute("value") === "", e.value = "t", e.setAttribute("type", "radio"), l.radioValue = e.value === "t"
    }();
    var hn = /\r/g;
    h.fn.extend({val: function(e) {
            var t, n, r, i = this[0];
            if (!arguments.length) {
                if (i)
                    return t = h.valHooks[i.type] || h.valHooks[i.nodeName.toLowerCase()], t && "get" in t && (n = t.get(i, "value")) !== undefined ? n : (n = i.value, typeof n == "string" ? n.replace(hn, "") : n == null ? "" : n);
                return
            }
            return r = h.isFunction(e), this.each(function(n) {
                var i;
                if (this.nodeType !== 1)
                    return;
                r ? i = e.call(this, n, h(this).val()) : i = e, i == null ? i = "" : typeof i == "number" ? i += "" : h.isArray(i) && (i = h.map(i, function(e) {
                    return e == null ? "" : e + ""
                })), t = h.valHooks[this.type] || h.valHooks[this.nodeName.toLowerCase()];
                if (!t || !("set" in t) || t.set(this, i, "value") === undefined)
                    this.value = i
            })
        }}), h.extend({valHooks: {option: {get: function(e) {
                    var t = h.find.attr(e, "value");
                    return t != null ? t : h.trim(h.text(e))
                }},select: {get: function(e) {
                    var t, n, r = e.options, i = e.selectedIndex, s = e.type === "select-one" || i < 0, o = s ? null : [], u = s ? i + 1 : r.length, a = i < 0 ? u : s ? i : 0;
                    for (; a < u; a++) {
                        n = r[a];
                        if ((n.selected || a === i) && (l.optDisabled ? !n.disabled : n.getAttribute("disabled") === null) && (!n.parentNode.disabled || !h.nodeName(n.parentNode, "optgroup"))) {
                            t = h(n).val();
                            if (s)
                                return t;
                            o.push(t)
                        }
                    }
                    return o
                },set: function(e, t) {
                    var n, r, i = e.options, s = h.makeArray(t), o = i.length;
                    while (o--) {
                        r = i[o];
                        if (h.inArray(h.valHooks.option.get(r), s) >= 0)
                            try {
                                r.selected = n = !0
                            } catch (u) {
                                r.scrollHeight
                            }
                        else
                            r.selected = !1
                    }
                    return n || (e.selectedIndex = -1), i
                }}}}), h.each(["radio", "checkbox"], function() {
        h.valHooks[this] = {set: function(e, t) {
                if (h.isArray(t))
                    return e.checked = h.inArray(h(e).val(), t) >= 0
            }}, l.checkOn || (h.valHooks[this].get = function(e) {
            return e.getAttribute("value") === null ? "on" : e.value
        })
    });
    var pn, dn, vn = h.expr.attrHandle, mn = /^(?:checked|selected)$/i, gn = l.getSetAttribute, yn = l.input;
    h.fn.extend({attr: function(e, t) {
            return $(this, h.attr, e, t, arguments.length > 1)
        },removeAttr: function(e) {
            return this.each(function() {
                h.removeAttr(this, e)
            })
        }}), h.extend({attr: function(e, t, n) {
            var r, i, s = e.nodeType;
            if (!e || s === 3 || s === 8 || s === 2)
                return;
            if (typeof e.getAttribute === B)
                return h.prop(e, t, n);
            if (s !== 1 || !h.isXMLDoc(e))
                t = t.toLowerCase(), r = h.attrHooks[t] || (h.expr.match.bool.test(t) ? dn : pn);
            if (n === undefined)
                return r && "get" in r && (i = r.get(e, t)) !== null ? i : (i = h.find.attr(e, t), i == null ? undefined : i);
            if (n !== null)
                return r && "set" in r && (i = r.set(e, n, t)) !== undefined ? i : (e.setAttribute(t, n + ""), n);
            h.removeAttr(e, t)
        },removeAttr: function(e, t) {
            var n, r, i = 0, s = t && t.match(O);
            if (s && e.nodeType === 1)
                while (n = s[i++])
                    r = h.propFix[n] || n, h.expr.match.bool.test(n) ? yn && gn || !mn.test(n) ? e[r] = !1 : e[h.camelCase("default-" + n)] = e[r] = !1 : h.attr(e, n, ""), e.removeAttribute(gn ? n : r)
        },attrHooks: {type: {set: function(e, t) {
                    if (!l.radioValue && t === "radio" && h.nodeName(e, "input")) {
                        var n = e.value;
                        return e.setAttribute("type", t), n && (e.value = n), t
                    }
                }}}}), dn = {set: function(e, t, n) {
            return t === !1 ? h.removeAttr(e, n) : yn && gn || !mn.test(n) ? e.setAttribute(!gn && h.propFix[n] || n, n) : e[h.camelCase("default-" + n)] = e[n] = !0, n
        }}, h.each(h.expr.match.bool.source.match(/\w+/g), function(e, t) {
        var n = vn[t] || h.find.attr;
        vn[t] = yn && gn || !mn.test(t) ? function(e, t, r) {
            var i, s;
            return r || (s = vn[t], vn[t] = i, i = n(e, t, r) != null ? t.toLowerCase() : null, vn[t] = s), i
        } : function(e, t, n) {
            if (!n)
                return e[h.camelCase("default-" + t)] ? t.toLowerCase() : null
        }
    });
    if (!yn || !gn)
        h.attrHooks.value = {set: function(e, t, n) {
                if (!h.nodeName(e, "input"))
                    return pn && pn.set(e, t, n);
                e.defaultValue = t
            }};
    gn || (pn = {set: function(e, t, n) {
            var r = e.getAttributeNode(n);
            r || e.setAttributeNode(r = e.ownerDocument.createAttribute(n)), r.value = t += "";
            if (n === "value" || t === e.getAttribute(n))
                return t
        }}, vn.id = vn.name = vn.coords = function(e, t, n) {
        var r;
        if (!n)
            return (r = e.getAttributeNode(t)) && r.value !== "" ? r.value : null
    }, h.valHooks.button = {get: function(e, t) {
            var n = e.getAttributeNode(t);
            if (n && n.specified)
                return n.value
        },set: pn.set}, h.attrHooks.contenteditable = {set: function(e, t, n) {
            pn.set(e, t === "" ? !1 : t, n)
        }}, h.each(["width", "height"], function(e, t) {
        h.attrHooks[t] = {set: function(e, n) {
                if (n === "")
                    return e.setAttribute(t, "auto"), n
            }}
    })), l.style || (h.attrHooks.style = {get: function(e) {
            return e.style.cssText || undefined
        },set: function(e, t) {
            return e.style.cssText = t + ""
        }});
    var bn = /^(?:input|select|textarea|button|object)$/i, wn = /^(?:a|area)$/i;
    h.fn.extend({prop: function(e, t) {
            return $(this, h.prop, e, t, arguments.length > 1)
        },removeProp: function(e) {
            return e = h.propFix[e] || e, this.each(function() {
                try {
                    this[e] = undefined, delete this[e]
                } catch (t) {
                }
            })
        }}), h.extend({propFix: {"for": "htmlFor","class": "className"},prop: function(e, t, n) {
            var r, i, s, o = e.nodeType;
            if (!e || o === 3 || o === 8 || o === 2)
                return;
            return s = o !== 1 || !h.isXMLDoc(e), s && (t = h.propFix[t] || t, i = h.propHooks[t]), n !== undefined ? i && "set" in i && (r = i.set(e, n, t)) !== undefined ? r : e[t] = n : i && "get" in i && (r = i.get(e, t)) !== null ? r : e[t]
        },propHooks: {tabIndex: {get: function(e) {
                    var t = h.find.attr(e, "tabindex");
                    return t ? parseInt(t, 10) : bn.test(e.nodeName) || wn.test(e.nodeName) && e.href ? 0 : -1
                }}}}), l.hrefNormalized || h.each(["href", "src"], function(e, t) {
        h.propHooks[t] = {get: function(e) {
                return e.getAttribute(t, 4)
            }}
    }), l.optSelected || (h.propHooks.selected = {get: function(e) {
            var t = e.parentNode;
            return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
        }}), h.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
        h.propFix[this.toLowerCase()] = this
    }), l.enctype || (h.propFix.enctype = "encoding");
    var En = /[\t\r\n\f]/g;
    h.fn.extend({addClass: function(e) {
            var t, n, r, i, s, o, u = 0, a = this.length, f = typeof e == "string" && e;
            if (h.isFunction(e))
                return this.each(function(t) {
                    h(this).addClass(e.call(this, t, this.className))
                });
            if (f) {
                t = (e || "").match(O) || [];
                for (; u < a; u++) {
                    n = this[u], r = n.nodeType === 1 && (n.className ? (" " + n.className + " ").replace(En, " ") : " ");
                    if (r) {
                        s = 0;
                        while (i = t[s++])
                            r.indexOf(" " + i + " ") < 0 && (r += i + " ");
                        o = h.trim(r), n.className !== o && (n.className = o)
                    }
                }
            }
            return this
        },removeClass: function(e) {
            var t, n, r, i, s, o, u = 0, a = this.length, f = arguments.length === 0 || typeof e == "string" && e;
            if (h.isFunction(e))
                return this.each(function(t) {
                    h(this).removeClass(e.call(this, t, this.className))
                });
            if (f) {
                t = (e || "").match(O) || [];
                for (; u < a; u++) {
                    n = this[u], r = n.nodeType === 1 && (n.className ? (" " + n.className + " ").replace(En, " ") : "");
                    if (r) {
                        s = 0;
                        while (i = t[s++])
                            while (r.indexOf(" " + i + " ") >= 0)
                                r = r.replace(" " + i + " ", " ");
                        o = e ? h.trim(r) : "", n.className !== o && (n.className = o)
                    }
                }
            }
            return this
        },toggleClass: function(e, t) {
            var n = typeof e;
            return typeof t == "boolean" && n === "string" ? t ? this.addClass(e) : this.removeClass(e) : h.isFunction(e) ? this.each(function(n) {
                h(this).toggleClass(e.call(this, n, this.className, t), t)
            }) : this.each(function() {
                if (n === "string") {
                    var t, r = 0, i = h(this), s = e.match(O) || [];
                    while (t = s[r++])
                        i.hasClass(t) ? i.removeClass(t) : i.addClass(t)
                } else if (n === B || n === "boolean")
                    this.className && h._data(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : h._data(this, "__className__") || ""
            })
        },hasClass: function(e) {
            var t = " " + e + " ", n = 0, r = this.length;
            for (; n < r; n++)
                if (this[n].nodeType === 1 && (" " + this[n].className + " ").replace(En, " ").indexOf(t) >= 0)
                    return !0;
            return !1
        }}), h.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t) {
        h.fn[t] = function(e, n) {
            return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
        }
    }), h.fn.extend({hover: function(e, t) {
            return this.mouseenter(e).mouseleave(t || e)
        },bind: function(e, t, n) {
            return this.on(e, null, t, n)
        },unbind: function(e, t) {
            return this.off(e, null, t)
        },delegate: function(e, t, n, r) {
            return this.on(t, e, n, r)
        },undelegate: function(e, t, n) {
            return arguments.length === 1 ? this.off(e, "**") : this.off(t, e || "**", n)
        }});
    var Sn = h.now(), xn = /\?/, Tn = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
    h.parseJSON = function(t) {
        if (e.JSON && e.JSON.parse)
            return e.JSON.parse(t + "");
        var n, r = null, i = h.trim(t + "");
        return i && !h.trim(i.replace(Tn, function(e, t, i, s) {
            return n && t && (r = 0), r === 0 ? e : (n = i || t, r += !s - !i, "")
        })) ? Function("return " + i)() : h.error("Invalid JSON: " + t)
    }, h.parseXML = function(t) {
        var n, r;
        if (!t || typeof t != "string")
            return null;
        try {
            e.DOMParser ? (r = new DOMParser, n = r.parseFromString(t, "text/xml")) : (n = new ActiveXObject("Microsoft.XMLDOM"), n.async = "false", n.loadXML(t))
        } catch (i) {
            n = undefined
        }
        return (!n || !n.documentElement || n.getElementsByTagName("parsererror").length) && h.error("Invalid XML: " + t), n
    };
    var Nn, Cn, kn = /#.*$/, Ln = /([?&])_=[^&]*/, An = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, On = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Mn = /^(?:GET|HEAD)$/, _n = /^\/\//, Dn = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, Pn = {}, Hn = {}, Bn = "*/".concat("*");
    try {
        Cn = location.href
    } catch (jn) {
        Cn = T.createElement("a"), Cn.href = "", Cn = Cn.href
    }
    Nn = Dn.exec(Cn.toLowerCase()) || [], h.extend({active: 0,lastModified: {},etag: {},ajaxSettings: {url: Cn,type: "GET",isLocal: On.test(Nn[1]),global: !0,processData: !0,async: !0,contentType: "application/x-www-form-urlencoded; charset=UTF-8",accepts: {"*": Bn,text: "text/plain",html: "text/html",xml: "application/xml, text/xml",json: "application/json, text/javascript"},contents: {xml: /xml/,html: /html/,json: /json/},responseFields: {xml: "responseXML",text: "responseText",json: "responseJSON"},converters: {"* text": String,"text html": !0,"text json": h.parseJSON,"text xml": h.parseXML},flatOptions: {url: !0,context: !0}},ajaxSetup: function(e, t) {
            return t ? qn(qn(e, h.ajaxSettings), t) : qn(h.ajaxSettings, e)
        },ajaxPrefilter: Fn(Pn),ajaxTransport: Fn(Hn),ajax: function(e, t) {
            function x(e, t, n, r) {
                var f, g, y, w, S, x = t;
                if (b === 2)
                    return;
                b = 2, o && clearTimeout(o), a = undefined, s = r || "", E.readyState = e > 0 ? 4 : 0, f = e >= 200 && e < 300 || e === 304, n && (w = Rn(l, E, n)), w = Un(l, w, E, f);
                if (f)
                    l.ifModified && (S = E.getResponseHeader("Last-Modified"), S && (h.lastModified[i] = S), S = E.getResponseHeader("etag"), S && (h.etag[i] = S)), e === 204 || l.type === "HEAD" ? x = "nocontent" : e === 304 ? x = "notmodified" : (x = w.state, g = w.data, y = w.error, f = !y);
                else {
                    y = x;
                    if (e || !x)
                        x = "error", e < 0 && (e = 0)
                }
                E.status = e, E.statusText = (t || x) + "", f ? d.resolveWith(c, [g, x, E]) : d.rejectWith(c, [E, x, y]), E.statusCode(m), m = undefined, u && p.trigger(f ? "ajaxSuccess" : "ajaxError", [E, l, f ? g : y]), v.fireWith(c, [E, x]), u && (p.trigger("ajaxComplete", [E, l]), --h.active || h.event.trigger("ajaxStop"))
            }
            typeof e == "object" && (t = e, e = undefined), t = t || {};
            var n, r, i, s, o, u, a, f, l = h.ajaxSetup({}, t), c = l.context || l, p = l.context && (c.nodeType || c.jquery) ? h(c) : h.event, d = h.Deferred(), v = h.Callbacks("once memory"), m = l.statusCode || {}, g = {}, y = {}, b = 0, w = "canceled", E = {readyState: 0,getResponseHeader: function(e) {
                    var t;
                    if (b === 2) {
                        if (!f) {
                            f = {};
                            while (t = An.exec(s))
                                f[t[1].toLowerCase()] = t[2]
                        }
                        t = f[e.toLowerCase()]
                    }
                    return t == null ? null : t
                },getAllResponseHeaders: function() {
                    return b === 2 ? s : null
                },setRequestHeader: function(e, t) {
                    var n = e.toLowerCase();
                    return b || (e = y[n] = y[n] || e, g[e] = t), this
                },overrideMimeType: function(e) {
                    return b || (l.mimeType = e), this
                },statusCode: function(e) {
                    var t;
                    if (e)
                        if (b < 2)
                            for (t in e)
                                m[t] = [m[t], e[t]];
                        else
                            E.always(e[E.status]);
                    return this
                },abort: function(e) {
                    var t = e || w;
                    return a && a.abort(t), x(0, t), this
                }};
            d.promise(E).complete = v.add, E.success = E.done, E.error = E.fail, l.url = ((e || l.url || Cn) + "").replace(kn, "").replace(_n, Nn[1] + "//"), l.type = t.method || t.type || l.method || l.type, l.dataTypes = h.trim(l.dataType || "*").toLowerCase().match(O) || [""], l.crossDomain == null && (n = Dn.exec(l.url.toLowerCase()), l.crossDomain = !(!n || n[1] === Nn[1] && n[2] === Nn[2] && (n[3] || (n[1] === "http:" ? "80" : "443")) === (Nn[3] || (Nn[1] === "http:" ? "80" : "443")))), l.data && l.processData && typeof l.data != "string" && (l.data = h.param(l.data, l.traditional)), In(Pn, l, t, E);
            if (b === 2)
                return E;
            u = l.global, u && h.active++ === 0 && h.event.trigger("ajaxStart"), l.type = l.type.toUpperCase(), l.hasContent = !Mn.test(l.type), i = l.url, l.hasContent || (l.data && (i = l.url += (xn.test(i) ? "&" : "?") + l.data, delete l.data), l.cache === !1 && (l.url = Ln.test(i) ? i.replace(Ln, "$1_=" + Sn++) : i + (xn.test(i) ? "&" : "?") + "_=" + Sn++)), l.ifModified && (h.lastModified[i] && E.setRequestHeader("If-Modified-Since", h.lastModified[i]), h.etag[i] && E.setRequestHeader("If-None-Match", h.etag[i])), (l.data && l.hasContent && l.contentType !== !1 || t.contentType) && E.setRequestHeader("Content-Type", l.contentType), E.setRequestHeader("Accept", l.dataTypes[0] && l.accepts[l.dataTypes[0]] ? l.accepts[l.dataTypes[0]] + (l.dataTypes[0] !== "*" ? ", " + Bn + "; q=0.01" : "") : l.accepts["*"]);
            for (r in l.headers)
                E.setRequestHeader(r, l.headers[r]);
            if (!l.beforeSend || l.beforeSend.call(c, E, l) !== !1 && b !== 2) {
                w = "abort";
                for (r in {success: 1,error: 1,complete: 1})
                    E[r](l[r]);
                a = In(Hn, l, t, E);
                if (!a)
                    x(-1, "No Transport");
                else {
                    E.readyState = 1, u && p.trigger("ajaxSend", [E, l]), l.async && l.timeout > 0 && (o = setTimeout(function() {
                        E.abort("timeout")
                    }, l.timeout));
                    try {
                        b = 1, a.send(g, x)
                    } catch (S) {
                        if (!(b < 2))
                            throw S;
                        x(-1, S)
                    }
                }
                return E
            }
            return E.abort()
        },getJSON: function(e, t, n) {
            return h.get(e, t, n, "json")
        },getScript: function(e, t) {
            return h.get(e, undefined, t, "script")
        }}), h.each(["get", "post"], function(e, t) {
        h[t] = function(e, n, r, i) {
            return h.isFunction(n) && (i = i || r, r = n, n = undefined), h.ajax({url: e,type: t,dataType: i,data: n,success: r})
        }
    }), h.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
        h.fn[t] = function(e) {
            return this.on(t, e)
        }
    }), h._evalUrl = function(e) {
        return h.ajax({url: e,type: "GET",dataType: "script",async: !1,global: !1,"throws": !0})
    }, h.fn.extend({wrapAll: function(e) {
            if (h.isFunction(e))
                return this.each(function(t) {
                    h(this).wrapAll(e.call(this, t))
                });
            if (this[0]) {
                var t = h(e, this[0].ownerDocument).eq(0).clone(!0);
                this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
                    var e = this;
                    while (e.firstChild && e.firstChild.nodeType === 1)
                        e = e.firstChild;
                    return e
                }).append(this)
            }
            return this
        },wrapInner: function(e) {
            return h.isFunction(e) ? this.each(function(t) {
                h(this).wrapInner(e.call(this, t))
            }) : this.each(function() {
                var t = h(this), n = t.contents();
                n.length ? n.wrapAll(e) : t.append(e)
            })
        },wrap: function(e) {
            var t = h.isFunction(e);
            return this.each(function(n) {
                h(this).wrapAll(t ? e.call(this, n) : e)
            })
        },unwrap: function() {
            return this.parent().each(function() {
                h.nodeName(this, "body") || h(this).replaceWith(this.childNodes)
            }).end()
        }}), h.expr.filters.hidden = function(e) {
        return e.offsetWidth <= 0 && e.offsetHeight <= 0 || !l.reliableHiddenOffsets() && (e.style && e.style.display || h.css(e, "display")) === "none"
    }, h.expr.filters.visible = function(e) {
        return !h.expr.filters.hidden(e)
    };
    var zn = /%20/g, Wn = /\[\]$/, Xn = /\r?\n/g, Vn = /^(?:submit|button|image|reset|file)$/i, $n = /^(?:input|select|textarea|keygen)/i;
    h.param = function(e, t) {
        var n, r = [], i = function(e, t) {
            t = h.isFunction(t) ? t() : t == null ? "" : t, r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
        };
        t === undefined && (t = h.ajaxSettings && h.ajaxSettings.traditional);
        if (h.isArray(e) || e.jquery && !h.isPlainObject(e))
            h.each(e, function() {
                i(this.name, this.value)
            });
        else
            for (n in e)
                Jn(n, e[n], t, i);
        return r.join("&").replace(zn, "+")
    }, h.fn.extend({serialize: function() {
            return h.param(this.serializeArray())
        },serializeArray: function() {
            return this.map(function() {
                var e = h.prop(this, "elements");
                return e ? h.makeArray(e) : this
            }).filter(function() {
                var e = this.type;
                return this.name && !h(this).is(":disabled") && $n.test(this.nodeName) && !Vn.test(e) && (this.checked || !J.test(e))
            }).map(function(e, t) {
                var n = h(this).val();
                return n == null ? null : h.isArray(n) ? h.map(n, function(e) {
                    return {name: t.name,value: e.replace(Xn, "\r\n")}
                }) : {name: t.name,value: n.replace(Xn, "\r\n")}
            }).get()
        }}), h.ajaxSettings.xhr = e.ActiveXObject !== undefined ? function() {
        return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && Yn() || Zn()
    } : Yn;
    var Kn = 0, Qn = {}, Gn = h.ajaxSettings.xhr();
    e.ActiveXObject && h(e).on("unload", function() {
        for (var e in Qn)
            Qn[e](undefined, !0)
    }), l.cors = !!Gn && "withCredentials" in Gn, Gn = l.ajax = !!Gn, Gn && h.ajaxTransport(function(e) {
        if (!e.crossDomain || l.cors) {
            var t;
            return {send: function(n, r) {
                    var i, s = e.xhr(), o = ++Kn;
                    s.open(e.type, e.url, e.async, e.username, e.password);
                    if (e.xhrFields)
                        for (i in e.xhrFields)
                            s[i] = e.xhrFields[i];
                    e.mimeType && s.overrideMimeType && s.overrideMimeType(e.mimeType), !e.crossDomain && !n["X-Requested-With"] && (n["X-Requested-With"] = "XMLHttpRequest");
                    for (i in n)
                        n[i] !== undefined && s.setRequestHeader(i, n[i] + "");
                    s.send(e.hasContent && e.data || null), t = function(n, i) {
                        var u, a, f;
                        if (t && (i || s.readyState === 4)) {
                            delete Qn[o], t = undefined, s.onreadystatechange = h.noop;
                            if (i)
                                s.readyState !== 4 && s.abort();
                            else {
                                f = {}, u = s.status, typeof s.responseText == "string" && (f.text = s.responseText);
                                try {
                                    a = s.statusText
                                } catch (l) {
                                    a = ""
                                }
                                !u && e.isLocal && !e.crossDomain ? u = f.text ? 200 : 404 : u === 1223 && (u = 204)
                            }
                        }
                        f && r(u, a, f, s.getAllResponseHeaders())
                    }, e.async ? s.readyState === 4 ? setTimeout(t) : s.onreadystatechange = Qn[o] = t : t()
                },abort: function() {
                    t && t(undefined, !0)
                }}
        }
    }), h.ajaxSetup({accepts: {script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents: {script: /(?:java|ecma)script/},converters: {"text script": function(e) {
                return h.globalEval(e), e
            }}}), h.ajaxPrefilter("script", function(e) {
        e.cache === undefined && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
    }), h.ajaxTransport("script", function(e) {
        if (e.crossDomain) {
            var t, n = T.head || h("head")[0] || T.documentElement;
            return {send: function(r, i) {
                    t = T.createElement("script"), t.async = !0, e.scriptCharset && (t.charset = e.scriptCharset), t.src = e.url, t.onload = t.onreadystatechange = function(e, n) {
                        if (n || !t.readyState || /loaded|complete/.test(t.readyState))
                            t.onload = t.onreadystatechange = null, t.parentNode && t.parentNode.removeChild(t), t = null, n || i(200, "success")
                    }, n.insertBefore(t, n.firstChild)
                },abort: function() {
                    t && t.onload(undefined, !0)
                }}
        }
    });
    var er = [], tr = /(=)\?(?=&|$)|\?\?/;
    h.ajaxSetup({jsonp: "callback",jsonpCallback: function() {
            var e = er.pop() || h.expando + "_" + Sn++;
            return this[e] = !0, e
        }}), h.ajaxPrefilter("json jsonp", function(t, n, r) {
        var i, s, o, u = t.jsonp !== !1 && (tr.test(t.url) ? "url" : typeof t.data == "string" && !(t.contentType || "").indexOf("application/x-www-form-urlencoded") && tr.test(t.data) && "data");
        if (u || t.dataTypes[0] === "jsonp")
            return i = t.jsonpCallback = h.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, u ? t[u] = t[u].replace(tr, "$1" + i) : t.jsonp !== !1 && (t.url += (xn.test(t.url) ? "&" : "?") + t.jsonp + "=" + i), t.converters["script json"] = function() {
                return o || h.error(i + " was not called"), o[0]
            }, t.dataTypes[0] = "json", s = e[i], e[i] = function() {
                o = arguments
            }, r.always(function() {
                e[i] = s, t[i] && (t.jsonpCallback = n.jsonpCallback, er.push(i)), o && h.isFunction(s) && s(o[0]), o = s = undefined
            }), "script"
    }), h.parseHTML = function(e, t, n) {
        if (!e || typeof e != "string")
            return null;
        typeof t == "boolean" && (n = t, t = !1), t = t || T;
        var r = w.exec(e), i = !n && [];
        return r ? [t.createElement(r[1])] : (r = h.buildFragment([e], t, i), i && i.length && h(i).remove(), h.merge([], r.childNodes))
    };
    var nr = h.fn.load;
    h.fn.load = function(e, t, n) {
        if (typeof e != "string" && nr)
            return nr.apply(this, arguments);
        var r, i, s, o = this, u = e.indexOf(" ");
        return u >= 0 && (r = h.trim(e.slice(u, e.length)), e = e.slice(0, u)), h.isFunction(t) ? (n = t, t = undefined) : t && typeof t == "object" && (s = "POST"), o.length > 0 && h.ajax({url: e,type: s,dataType: "html",data: t}).done(function(e) {
            i = arguments, o.html(r ? h("<div>").append(h.parseHTML(e)).find(r) : e)
        }).complete(n && function(e, t) {
            o.each(n, i || [e.responseText, t, e])
        }), this
    }, h.expr.filters.animated = function(e) {
        return h.grep(h.timers, function(t) {
            return e === t.elem
        }).length
    };
    var rr = e.document.documentElement;
    h.offset = {setOffset: function(e, t, n) {
            var r, i, s, o, u, a, f, l = h.css(e, "position"), c = h(e), p = {};
            l === "static" && (e.style.position = "relative"), u = c.offset(), s = h.css(e, "top"), a = h.css(e, "left"), f = (l === "absolute" || l === "fixed") && h.inArray("auto", [s, a]) > -1, f ? (r = c.position(), o = r.top, i = r.left) : (o = parseFloat(s) || 0, i = parseFloat(a) || 0), h.isFunction(t) && (t = t.call(e, n, u)), t.top != null && (p.top = t.top - u.top + o), t.left != null && (p.left = t.left - u.left + i), "using" in t ? t.using.call(e, p) : c.css(p)
        }}, h.fn.extend({offset: function(e) {
            if (arguments.length)
                return e === undefined ? this : this.each(function(t) {
                    h.offset.setOffset(this, e, t)
                });
            var t, n, r = {top: 0,left: 0}, i = this[0], s = i && i.ownerDocument;
            if (!s)
                return;
            return t = s.documentElement, h.contains(t, i) ? (typeof i.getBoundingClientRect !== B && (r = i.getBoundingClientRect()), n = ir(s), {top: r.top + (n.pageYOffset || t.scrollTop) - (t.clientTop || 0),left: r.left + (n.pageXOffset || t.scrollLeft) - (t.clientLeft || 0)}) : r
        },position: function() {
            if (!this[0])
                return;
            var e, t, n = {top: 0,left: 0}, r = this[0];
            return h.css(r, "position") === "fixed" ? t = r.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), h.nodeName(e[0], "html") || (n = e.offset()), n.top += h.css(e[0], "borderTopWidth", !0), n.left += h.css(e[0], "borderLeftWidth", !0)), {top: t.top - n.top - h.css(r, "marginTop", !0),left: t.left - n.left - h.css(r, "marginLeft", !0)}
        },offsetParent: function() {
            return this.map(function() {
                var e = this.offsetParent || rr;
                while (e && !h.nodeName(e, "html") && h.css(e, "position") === "static")
                    e = e.offsetParent;
                return e || rr
            })
        }}), h.each({scrollLeft: "pageXOffset",scrollTop: "pageYOffset"}, function(e, t) {
        var n = /Y/.test(t);
        h.fn[e] = function(r) {
            return $(this, function(e, r, i) {
                var s = ir(e);
                if (i === undefined)
                    return s ? t in s ? s[t] : s.document.documentElement[r] : e[r];
                s ? s.scrollTo(n ? h(s).scrollLeft() : i, n ? i : h(s).scrollTop()) : e[r] = i
            }, e, r, arguments.length, null)
        }
    }), h.each(["top", "left"], function(e, t) {
        h.cssHooks[t] = jt(l.pixelPosition, function(e, n) {
            if (n)
                return n = Ht(e, t), Dt.test(n) ? h(e).position()[t] + "px" : n
        })
    }), h.each({Height: "height",Width: "width"}, function(e, t) {
        h.each({padding: "inner" + e,content: t,"": "outer" + e}, function(n, r) {
            h.fn[r] = function(r, i) {
                var s = arguments.length && (n || typeof r != "boolean"), o = n || (r === !0 || i === !0 ? "margin" : "border");
                return $(this, function(t, n, r) {
                    var i;
                    return h.isWindow(t) ? t.document.documentElement["client" + e] : t.nodeType === 9 ? (i = t.documentElement, Math.max(t.body["scroll" + e], i["scroll" + e], t.body["offset" + e], i["offset" + e], i["client" + e])) : r === undefined ? h.css(t, n, o) : h.style(t, n, r, o)
                }, t, s ? r : undefined, s, null)
            }
        })
    }), h.fn.size = function() {
        return this.length
    }, h.fn.andSelf = h.fn.addBack, typeof define == "function" && define.amd && define("jquery", [], function() {
        return h
    });
    var sr = e.jQuery, or = e.$;
    return h.noConflict = function(t) {
        return e.$ === h && (e.$ = or), t && e.jQuery === h && (e.jQuery = sr), h
    }, typeof t === B && (e.jQuery = e.$ = h), h
}), function(e) {
    e.fn.mason = function(t, n) {
        var r = {itemSelector: null,ratio: 0,sizes: [],columns: [[0, 480, 1], [480, 780, 2], [780, 1080, 3], [1080, 1320, 4], [1320, 1680, 5]],promoted: [],filler: {itemSelector: t.itemSelector,filler_class: "mason_filler"},randomSizes: !1,randomFillers: !1,layout: "none",gutter: 0};
        if (n)
            var i = {complete: n};
        var s = {block: {height: 0,width: 0},matrix: []};
        return this.each(function() {
            function f() {
                a.children(".mason_clear").length < 1 && a.append("<div class='mason_clear' style='clear:both;position:relative;'></div>"), s.block.height = parseFloat((a.width() / c() / o.ratio).toFixed(0)), s.block.width = parseFloat(a.width() / c()), l()
            }
            function l() {
                var t = c();
                if (t == 1)
                    $sel = a.children(o.itemSelector), $sel.height(s.block.height), $sel.width(s.block.width), $sel.css({margin: "0px"});
                else {
                    for (var n = 0; n < o.promoted.length; n++)
                        o.sizes.push([o.promoted[n][0], o.promoted[n][1]]);
                    a.children(o.itemSelector).each(function() {
                        $sel = e(this);
                        var t;
                        o.randomSizes ? t = Math.floor(Math.random() * (o.sizes.length - o.promoted.length)) : (t = $sel.data("layout"), typeof t == "undefined" && (t = Math.floor(Math.random() * (o.sizes.length - o.promoted.length)))), ranSize = o.sizes[t];
                        for (var n = 0; n < o.promoted.length; n++)
                            $sel.hasClass(o.promoted[n][2]) && (ranSize = [o.promoted[n][0], o.promoted[n][1]], t = o.sizes.length - o.promoted.length + n);
                        $sel.data("size", t);
                        var r = parseFloat((s.block.height * ranSize[1]).toFixed(2));
                        r -= o.gutter * 2;
                        var i = parseFloat(s.block.width * ranSize[0]);
                        i -= o.gutter * 2, $sel.height(r + "px"), $sel.width(i + "px"), $sel.css({margin: o.gutter})
                    });
                    var r = a.height(), i = r / s.block.height;
                    s.matrix = [];
                    for (var n = 0; n < i; n++) {
                        s.matrix[n] = [];
                        for (var f = 0; f < t; f++)
                            s.matrix[n][f] = !1
                    }
                    a.children(o.itemSelector).each(function() {
                        $sel = e(this);
                        var t = Math.round($sel.position().left / s.block.width), n = Math.round($sel.position().top / s.block.height), r = parseFloat($sel.data("size")), i = o.sizes[r][1], u = o.sizes[r][0], a = i * u;
                        for (var f = 0; f < a; f++)
                            for (var l = 0; l < i; l++) {
                                s.matrix[n + l][t] = !0;
                                for (var c = 0; c < u; c++)
                                    s.matrix[n + l][t + c] = !0
                            }
                    });
                    var l = e(o.filler.itemSelector).length;
                    for (var n = 0; n < s.matrix.length; n++)
                        for (var f = 0; f < s.matrix[n].length; f++)
                            if (s.matrix[n][f] == 0) {
                                var h = parseFloat(s.block.height), p = parseFloat(s.block.width), d = parseFloat((n * h).toFixed(2)) + o.gutter, v = parseFloat(f * p) + o.gutter, m, g;
                                h -= o.gutter * 2, p -= o.gutter * 2, o.randomFillers ? m = Math.floor(Math.random() * e(o.filler.itemSelector).length) : m = l - 1, g = e(o.filler.itemSelector).eq(m).clone(), g.addClass(o.filler.filler_class), g.css({position: "absolute",top: d + "px",left: v + 15 + "px",height: h + "px",width: p + "px",margin: "0px"}), g.appendTo(a)
                            }
                    u.complete != null && u.complete()
                }
            }
            function c() {
                var e = Math.floor(a.width()), t = 0, n = o.columns.length - 1;
                if (e >= o.columns[n][1])
                    t = o.columns[n][2];
                else
                    for (var r = 0; r <= n; r++)
                        e > o.columns[r][0] && e < o.columns[r][1] && (t = o.columns[r][2]);
                return t
            }
            var o, u, a;
            o = e.extend(r, t), u = e.extend(i, n), a = e(this);
            var h = function() {
                var e = {};
                return function(t, n, r) {
                    r || (r = p()), e[r] && clearTimeout(e[r]), e[r] = setTimeout(t, n)
                }
            }(), p = function() {
                var e = "", t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
                for (var n = 0; n < 5; n++)
                    e += t.charAt(Math.floor(Math.random() * t.length));
                return e
            };
            o.layout == "fluid" && e(window).resize(function() {
                e("." + o.filler.filler_class).remove(), s.matrix = [], h(function() {
                    e("." + o.filler.filler_class).remove(), f()
                }, 150)
            }), f()
        })
    }
}(jQuery), define("mason", ["jquery"], function(e) {
    return function() {
        var t, n;
        return t || e.mason
    }
}(this));
var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
(_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
    _gsScope._gsDefine("TweenMax", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, n) {
        var r = function(e) {
            var t, n = [], r = e.length;
            for (t = 0; t !== r; n.push(e[t++]))
                ;
            return n
        }, i = function(e, t, r) {
            n.call(this, e, t, r), this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._dirty = !0, this.render = i.prototype.render
        }, s = 1e-10, o = n._internals, u = o.isSelector, a = o.isArray, f = i.prototype = n.to({}, .1, {}), l = [];
        i.version = "1.14.1", f.constructor = i, f.kill()._gc = !1, i.killTweensOf = i.killDelayedCallsTo = n.killTweensOf, i.getTweensOf = n.getTweensOf, i.lagSmoothing = n.lagSmoothing, i.ticker = n.ticker, i.render = n.render, f.invalidate = function() {
            return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), n.prototype.invalidate.call(this)
        }, f.updateTo = function(e, t) {
            var r, i = this.ratio;
            t && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay));
            for (r in e)
                this.vars[r] = e[r];
            if (this._initted)
                if (t)
                    this._initted = !1;
                else if (this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && n._onPluginEvent("_onDisable", this), this._time / this._duration > .998) {
                    var s = this._time;
                    this.render(0, !0, !1), this._initted = !1, this.render(s, !0, !1)
                } else if (this._time > 0) {
                    this._initted = !1, this._init();
                    for (var o, u = 1 / (1 - i), a = this._firstPT; a; )
                        o = a.s + a.c, a.c *= u, a.s = o - a.c, a = a._next
                }
            return this
        }, f.render = function(e, t, n) {
            this._initted || 0 === this._duration && this.vars.repeat && this.invalidate();
            var r, i, u, a, f, c, h, p, d = this._dirty ? this.totalDuration() : this._totalDuration, v = this._time, m = this._totalTime, g = this._cycle, y = this._duration, b = this._rawPrevTime;
            if (e >= d ? (this._totalTime = d, this._cycle = this._repeat, this._yoyo && 0 !== (1 & this._cycle) ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = y, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (r = !0, i = "onComplete"), 0 === y && (this._initted || !this.vars.lazy || n) && (this._startTime === this._timeline._duration && (e = 0), (0 === e || 0 > b || b === s) && b !== e && (n = !0, b > s && (i = "onReverseComplete")), this._rawPrevTime = p = !t || e || b === e ? e : s)) : 1e-7 > e ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== m || 0 === y && b > 0 && b !== s) && (i = "onReverseComplete", r = this._reversed), 0 > e && (this._active = !1, 0 === y && (this._initted || !this.vars.lazy || n) && (b >= 0 && (n = !0), this._rawPrevTime = p = !t || e || b === e ? e : s)), this._initted || (n = !0)) : (this._totalTime = this._time = e, 0 !== this._repeat && (a = y + this._repeatDelay, this._cycle = this._totalTime / a >> 0, 0 !== this._cycle && this._cycle === this._totalTime / a && this._cycle--, this._time = this._totalTime - this._cycle * a, this._yoyo && 0 !== (1 & this._cycle) && (this._time = y - this._time), this._time > y ? this._time = y : 0 > this._time && (this._time = 0)), this._easeType ? (f = this._time / y, c = this._easeType, h = this._easePower, (1 === c || 3 === c && f >= .5) && (f = 1 - f), 3 === c && (f *= 2), 1 === h ? f *= f : 2 === h ? f *= f * f : 3 === h ? f *= f * f * f : 4 === h && (f *= f * f * f * f), this.ratio = 1 === c ? 1 - f : 2 === c ? f : .5 > this._time / y ? f / 2 : 1 - f / 2) : this.ratio = this._ease.getRatio(this._time / y)), v === this._time && !n && g === this._cycle)
                return m !== this._totalTime && this._onUpdate && (t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || l)), void 0;
            if (!this._initted) {
                if (this._init(), !this._initted || this._gc)
                    return;
                if (!n && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration))
                    return this._time = v, this._totalTime = m, this._rawPrevTime = b, this._cycle = g, o.lazyTweens.push(this), this._lazy = [e, t], void 0;
                this._time && !r ? this.ratio = this._ease.getRatio(this._time / y) : r && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
            }
            for (this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== v && e >= 0 && (this._active = !0), 0 === m && (2 === this._initted && e > 0 && this._init(), this._startAt && (e >= 0 ? this._startAt.render(e, t, n) : i || (i = "_dummyGS")), this.vars.onStart && (0 !== this._totalTime || 0 === y) && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || l))), u = this._firstPT; u; )
                u.f ? u.t[u.p](u.c * this.ratio + u.s) : u.t[u.p] = u.c * this.ratio + u.s, u = u._next;
            this._onUpdate && (0 > e && this._startAt && this._startTime && this._startAt.render(e, t, n), t || (this._totalTime !== m || r) && this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || l)), this._cycle !== g && (t || this._gc || this.vars.onRepeat && this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || l)), i && (!this._gc || n) && (0 > e && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(e, t, n), r && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[i] && this.vars[i].apply(this.vars[i + "Scope"] || this, this.vars[i + "Params"] || l), 0 === y && this._rawPrevTime === s && p !== s && (this._rawPrevTime = 0))
        }, i.to = function(e, t, n) {
            return new i(e, t, n)
        }, i.from = function(e, t, n) {
            return n.runBackwards = !0, n.immediateRender = 0 != n.immediateRender, new i(e, t, n)
        }, i.fromTo = function(e, t, n, r) {
            return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, new i(e, t, r)
        }, i.staggerTo = i.allTo = function(e, t, s, o, f, c, h) {
            o = o || 0;
            var p, d, v, m, g = s.delay || 0, y = [], b = function() {
                s.onComplete && s.onComplete.apply(s.onCompleteScope || this, arguments), f.apply(h || this, c || l)
            };
            for (a(e) || ("string" == typeof e && (e = n.selector(e) || e), u(e) && (e = r(e))), e = e || [], 0 > o && (e = r(e), e.reverse(), o *= -1), p = e.length - 1, v = 0; p >= v; v++) {
                d = {};
                for (m in s)
                    d[m] = s[m];
                d.delay = g, v === p && f && (d.onComplete = b), y[v] = new i(e[v], t, d), g += o
            }
            return y
        }, i.staggerFrom = i.allFrom = function(e, t, n, r, s, o, u) {
            return n.runBackwards = !0, n.immediateRender = 0 != n.immediateRender, i.staggerTo(e, t, n, r, s, o, u)
        }, i.staggerFromTo = i.allFromTo = function(e, t, n, r, s, o, u, a) {
            return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, i.staggerTo(e, t, r, s, o, u, a)
        }, i.delayedCall = function(e, t, n, r, s) {
            return new i(t, 0, {delay: e,onComplete: t,onCompleteParams: n,onCompleteScope: r,onReverseComplete: t,onReverseCompleteParams: n,onReverseCompleteScope: r,immediateRender: !1,useFrames: s,overwrite: 0})
        }, i.set = function(e, t) {
            return new i(e, 0, t)
        }, i.isTweening = function(e) {
            return n.getTweensOf(e, !0).length > 0
        };
        var c = function(e, t) {
            for (var r = [], i = 0, s = e._first; s; )
                s instanceof n ? r[i++] = s : (t && (r[i++] = s), r = r.concat(c(s, t)), i = r.length), s = s._next;
            return r
        }, h = i.getAllTweens = function(t) {
            return c(e._rootTimeline, t).concat(c(e._rootFramesTimeline, t))
        };
        i.killAll = function(e, n, r, i) {
            null == n && (n = !0), null == r && (r = !0);
            var s, o, u, a = h(0 != i), f = a.length, l = n && r && i;
            for (u = 0; f > u; u++)
                o = a[u], (l || o instanceof t || (s = o.target === o.vars.onComplete) && r || n && !s) && (e ? o.totalTime(o._reversed ? 0 : o.totalDuration()) : o._enabled(!1, !1))
        }, i.killChildTweensOf = function(e, t) {
            if (null != e) {
                var s, f, l, c, h, p = o.tweenLookup;
                if ("string" == typeof e && (e = n.selector(e) || e), u(e) && (e = r(e)), a(e))
                    for (c = e.length; --c > -1; )
                        i.killChildTweensOf(e[c], t);
                else {
                    s = [];
                    for (l in p)
                        for (f = p[l].target.parentNode; f; )
                            f === e && (s = s.concat(p[l].tweens)), f = f.parentNode;
                    for (h = s.length, c = 0; h > c; c++)
                        t && s[c].totalTime(s[c].totalDuration()), s[c]._enabled(!1, !1)
                }
            }
        };
        var p = function(e, n, r, i) {
            n = n !== !1, r = r !== !1, i = i !== !1;
            for (var s, o, u = h(i), a = n && r && i, f = u.length; --f > -1; )
                o = u[f], (a || o instanceof t || (s = o.target === o.vars.onComplete) && r || n && !s) && o.paused(e)
        };
        return i.pauseAll = function(e, t, n) {
            p(!0, e, t, n)
        }, i.resumeAll = function(e, t, n) {
            p(!1, e, t, n)
        }, i.globalTimeScale = function(t) {
            var r = e._rootTimeline, i = n.ticker.time;
            return arguments.length ? (t = t || s, r._startTime = i - (i - r._startTime) * r._timeScale / t, r = e._rootFramesTimeline, i = n.ticker.frame, r._startTime = i - (i - r._startTime) * r._timeScale / t, r._timeScale = e._rootTimeline._timeScale = t, t) : r._timeScale
        }, f.progress = function(e) {
            return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), !1) : this._time / this.duration()
        }, f.totalProgress = function(e) {
            return arguments.length ? this.totalTime(this.totalDuration() * e, !1) : this._totalTime / this.totalDuration()
        }, f.time = function(e, t) {
            return arguments.length ? (this._dirty && this.totalDuration(), e > this._duration && (e = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? e = this._duration - e + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(e, t)) : this._time
        }, f.duration = function(t) {
            return arguments.length ? e.prototype.duration.call(this, t) : this._duration
        }, f.totalDuration = function(e) {
            return arguments.length ? -1 === this._repeat ? this : this.duration((e - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration)
        }, f.repeat = function(e) {
            return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
        }, f.repeatDelay = function(e) {
            return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
        }, f.yoyo = function(e) {
            return arguments.length ? (this._yoyo = e, this) : this._yoyo
        }, i
    }, !0), _gsScope._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, n) {
        var r = function(e) {
            t.call(this, e), this._labels = {}, this.autoRemoveChildren = this.vars.autoRemoveChildren === !0, this.smoothChildTiming = this.vars.smoothChildTiming === !0, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
            var n, r, i = this.vars;
            for (r in i)
                n = i[r], u(n) && -1 !== n.join("").indexOf("{self}") && (i[r] = this._swapSelfInParams(n));
            u(i.tweens) && this.add(i.tweens, 0, i.align, i.stagger)
        }, i = 1e-10, s = n._internals, o = s.isSelector, u = s.isArray, a = s.lazyTweens, f = s.lazyRender, l = [], c = _gsScope._gsDefine.globals, h = function(e) {
            var t, n = {};
            for (t in e)
                n[t] = e[t];
            return n
        }, p = function(e, t, n, r) {
            var i = e._timeline._totalTime;
            (t || !this._forcingPlayhead) && (e._timeline.pause(e._startTime), t && t.apply(r || e._timeline, n || l), this._forcingPlayhead && e._timeline.seek(i))
        }, d = function(e) {
            var t, n = [], r = e.length;
            for (t = 0; t !== r; n.push(e[t++]))
                ;
            return n
        }, v = r.prototype = new t;
        return r.version = "1.14.1", v.constructor = r, v.kill()._gc = v._forcingPlayhead = !1, v.to = function(e, t, r, i) {
            var s = r.repeat && c.TweenMax || n;
            return t ? this.add(new s(e, t, r), i) : this.set(e, r, i)
        }, v.from = function(e, t, r, i) {
            return this.add((r.repeat && c.TweenMax || n).from(e, t, r), i)
        }, v.fromTo = function(e, t, r, i, s) {
            var o = i.repeat && c.TweenMax || n;
            return t ? this.add(o.fromTo(e, t, r, i), s) : this.set(e, i, s)
        }, v.staggerTo = function(e, t, i, s, u, a, f, l) {
            var c, p = new r({onComplete: a,onCompleteParams: f,onCompleteScope: l,smoothChildTiming: this.smoothChildTiming});
            for ("string" == typeof e && (e = n.selector(e) || e), e = e || [], o(e) && (e = d(e)), s = s || 0, 0 > s && (e = d(e), e.reverse(), s *= -1), c = 0; e.length > c; c++)
                i.startAt && (i.startAt = h(i.startAt)), p.to(e[c], t, h(i), c * s);
            return this.add(p, u)
        }, v.staggerFrom = function(e, t, n, r, i, s, o, u) {
            return n.immediateRender = 0 != n.immediateRender, n.runBackwards = !0, this.staggerTo(e, t, n, r, i, s, o, u)
        }, v.staggerFromTo = function(e, t, n, r, i, s, o, u, a) {
            return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, this.staggerTo(e, t, r, i, s, o, u, a)
        }, v.call = function(e, t, r, i) {
            return this.add(n.delayedCall(0, e, t, r), i)
        }, v.set = function(e, t, r) {
            return r = this._parseTimeOrLabel(r, 0, !0), null == t.immediateRender && (t.immediateRender = r === this._time && !this._paused), this.add(new n(e, 0, t), r)
        }, r.exportRoot = function(e, t) {
            e = e || {}, null == e.smoothChildTiming && (e.smoothChildTiming = !0);
            var i, s, o = new r(e), u = o._timeline;
            for (null == t && (t = !0), u._remove(o, !0), o._startTime = 0, o._rawPrevTime = o._time = o._totalTime = u._time, i = u._first; i; )
                s = i._next, t && i instanceof n && i.target === i.vars.onComplete || o.add(i, i._startTime - i._delay), i = s;
            return u.add(o, 0), o
        }, v.add = function(i, s, o, a) {
            var f, l, c, h, p, d;
            if ("number" != typeof s && (s = this._parseTimeOrLabel(s, 0, !0, i)), !(i instanceof e)) {
                if (i instanceof Array || i && i.push && u(i)) {
                    for (o = o || "normal", a = a || 0, f = s, l = i.length, c = 0; l > c; c++)
                        u(h = i[c]) && (h = new r({tweens: h})), this.add(h, f), "string" != typeof h && "function" != typeof h && ("sequence" === o ? f = h._startTime + h.totalDuration() / h._timeScale : "start" === o && (h._startTime -= h.delay())), f += a;
                    return this._uncache(!0)
                }
                if ("string" == typeof i)
                    return this.addLabel(i, s);
                if ("function" != typeof i)
                    throw "Cannot add " + i + " into the timeline; it is not a tween, timeline, function, or string.";
                i = n.delayedCall(0, i)
            }
            if (t.prototype.add.call(this, i, s), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
                for (p = this, d = p.rawTime() > i._startTime; p._timeline; )
                    d && p._timeline.smoothChildTiming ? p.totalTime(p._totalTime, !0) : p._gc && p._enabled(!0, !1), p = p._timeline;
            return this
        }, v.remove = function(t) {
            if (t instanceof e)
                return this._remove(t, !1);
            if (t instanceof Array || t && t.push && u(t)) {
                for (var n = t.length; --n > -1; )
                    this.remove(t[n]);
                return this
            }
            return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t)
        }, v._remove = function(e, n) {
            t.prototype._remove.call(this, e, n);
            var r = this._last;
            return r ? this._time > r._startTime + r._totalDuration / r._timeScale && (this._time = this.duration(), this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this
        }, v.append = function(e, t) {
            return this.add(e, this._parseTimeOrLabel(null, t, !0, e))
        }, v.insert = v.insertMultiple = function(e, t, n, r) {
            return this.add(e, t || 0, n, r)
        }, v.appendMultiple = function(e, t, n, r) {
            return this.add(e, this._parseTimeOrLabel(null, t, !0, e), n, r)
        }, v.addLabel = function(e, t) {
            return this._labels[e] = this._parseTimeOrLabel(t), this
        }, v.addPause = function(e, t, n, r) {
            return this.call(p, ["{self}", t, n, r], this, e)
        }, v.removeLabel = function(e) {
            return delete this._labels[e], this
        }, v.getLabelTime = function(e) {
            return null != this._labels[e] ? this._labels[e] : -1
        }, v._parseTimeOrLabel = function(t, n, r, i) {
            var s;
            if (i instanceof e && i.timeline === this)
                this.remove(i);
            else if (i && (i instanceof Array || i.push && u(i)))
                for (s = i.length; --s > -1; )
                    i[s] instanceof e && i[s].timeline === this && this.remove(i[s]);
            if ("string" == typeof n)
                return this._parseTimeOrLabel(n, r && "number" == typeof t && null == this._labels[n] ? t - this.duration() : 0, r);
            if (n = n || 0, "string" != typeof t || !isNaN(t) && null == this._labels[t])
                null == t && (t = this.duration());
            else {
                if (s = t.indexOf("="), -1 === s)
                    return null == this._labels[t] ? r ? this._labels[t] = this.duration() + n : n : this._labels[t] + n;
                n = parseInt(t.charAt(s - 1) + "1", 10) * Number(t.substr(s + 1)), t = s > 1 ? this._parseTimeOrLabel(t.substr(0, s - 1), 0, r) : this.duration()
            }
            return Number(t) + n
        }, v.seek = function(e, t) {
            return this.totalTime("number" == typeof e ? e : this._parseTimeOrLabel(e), t !== !1)
        }, v.stop = function() {
            return this.paused(!0)
        }, v.gotoAndPlay = function(e, t) {
            return this.play(e, t)
        }, v.gotoAndStop = function(e, t) {
            return this.pause(e, t)
        }, v.render = function(e, t, n) {
            this._gc && this._enabled(!0, !1);
            var r, s, o, u, c, h = this._dirty ? this.totalDuration() : this._totalDuration, p = this._time, d = this._startTime, v = this._timeScale, m = this._paused;
            if (e >= h ? (this._totalTime = this._time = h, this._reversed || this._hasPausedChild() || (s = !0, u = "onComplete", 0 === this._duration && (0 === e || 0 > this._rawPrevTime || this._rawPrevTime === i) && this._rawPrevTime !== e && this._first && (c = !0, this._rawPrevTime > i && (u = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, e = h + 1e-4) : 1e-7 > e ? (this._totalTime = this._time = 0, (0 !== p || 0 === this._duration && this._rawPrevTime !== i && (this._rawPrevTime > 0 || 0 > e && this._rawPrevTime >= 0)) && (u = "onReverseComplete", s = this._reversed), 0 > e ? (this._active = !1, this._rawPrevTime >= 0 && this._first && (c = !0), this._rawPrevTime = e) : (this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, e = 0, this._initted || (c = !0))) : this._totalTime = this._time = this._rawPrevTime = e, this._time !== p && this._first || n || c) {
                if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== p && e > 0 && (this._active = !0), 0 === p && this.vars.onStart && 0 !== this._time && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || l)), this._time >= p)
                    for (r = this._first; r && (o = r._next, !this._paused || m); )
                        (r._active || r._startTime <= this._time && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = o;
                else
                    for (r = this._last; r && (o = r._prev, !this._paused || m); )
                        (r._active || p >= r._startTime && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = o;
                this._onUpdate && (t || (a.length && f(), this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || l))), u && (this._gc || (d === this._startTime || v !== this._timeScale) && (0 === this._time || h >= this.totalDuration()) && (s && (a.length && f(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[u] && this.vars[u].apply(this.vars[u + "Scope"] || this, this.vars[u + "Params"] || l)))
            }
        }, v._hasPausedChild = function() {
            for (var e = this._first; e; ) {
                if (e._paused || e instanceof r && e._hasPausedChild())
                    return !0;
                e = e._next
            }
            return !1
        }, v.getChildren = function(e, t, r, i) {
            i = i || -9999999999;
            for (var s = [], o = this._first, u = 0; o; )
                i > o._startTime || (o instanceof n ? t !== !1 && (s[u++] = o) : (r !== !1 && (s[u++] = o), e !== !1 && (s = s.concat(o.getChildren(!0, t, r)), u = s.length))), o = o._next;
            return s
        }, v.getTweensOf = function(e, t) {
            var r, i, s = this._gc, o = [], u = 0;
            for (s && this._enabled(!0, !0), r = n.getTweensOf(e), i = r.length; --i > -1; )
                (r[i].timeline === this || t && this._contains(r[i])) && (o[u++] = r[i]);
            return s && this._enabled(!1, !0), o
        }, v.recent = function() {
            return this._recent
        }, v._contains = function(e) {
            for (var t = e.timeline; t; ) {
                if (t === this)
                    return !0;
                t = t.timeline
            }
            return !1
        }, v.shiftChildren = function(e, t, n) {
            n = n || 0;
            for (var r, i = this._first, s = this._labels; i; )
                i._startTime >= n && (i._startTime += e), i = i._next;
            if (t)
                for (r in s)
                    s[r] >= n && (s[r] += e);
            return this._uncache(!0)
        }, v._kill = function(e, t) {
            if (!e && !t)
                return this._enabled(!1, !1);
            for (var n = t ? this.getTweensOf(t) : this.getChildren(!0, !0, !1), r = n.length, i = !1; --r > -1; )
                n[r]._kill(e, t) && (i = !0);
            return i
        }, v.clear = function(e) {
            var t = this.getChildren(!1, !0, !0), n = t.length;
            for (this._time = this._totalTime = 0; --n > -1; )
                t[n]._enabled(!1, !1);
            return e !== !1 && (this._labels = {}), this._uncache(!0)
        }, v.invalidate = function() {
            for (var t = this._first; t; )
                t.invalidate(), t = t._next;
            return e.prototype.invalidate.call(this)
        }, v._enabled = function(e, n) {
            if (e === this._gc)
                for (var r = this._first; r; )
                    r._enabled(e, !0), r = r._next;
            return t.prototype._enabled.call(this, e, n)
        }, v.totalTime = function() {
            this._forcingPlayhead = !0;
            var t = e.prototype.totalTime.apply(this, arguments);
            return this._forcingPlayhead = !1, t
        }, v.duration = function(e) {
            return arguments.length ? (0 !== this.duration() && 0 !== e && this.timeScale(this._duration / e), this) : (this._dirty && this.totalDuration(), this._duration)
        }, v.totalDuration = function(e) {
            if (!arguments.length) {
                if (this._dirty) {
                    for (var t, n, r = 0, i = this._last, s = 999999999999; i; )
                        t = i._prev, i._dirty && i.totalDuration(), i._startTime > s && this._sortChildren && !i._paused ? this.add(i, i._startTime - i._delay) : s = i._startTime, 0 > i._startTime && !i._paused && (r -= i._startTime, this._timeline.smoothChildTiming && (this._startTime += i._startTime / this._timeScale), this.shiftChildren(-i._startTime, !1, -9999999999), s = 0), n = i._startTime + i._totalDuration / i._timeScale, n > r && (r = n), i = t;
                    this._duration = this._totalDuration = r, this._dirty = !1
                }
                return this._totalDuration
            }
            return 0 !== this.totalDuration() && 0 !== e && this.timeScale(this._totalDuration / e), this
        }, v.usesFrames = function() {
            for (var t = this._timeline; t._timeline; )
                t = t._timeline;
            return t === e._rootFramesTimeline
        }, v.rawTime = function() {
            return this._paused ? this._totalTime : (this._timeline.rawTime() - this._startTime) * this._timeScale
        }, r
    }, !0), _gsScope._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function(e, t, n) {
        var r = function(t) {
            e.call(this, t), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._dirty = !0
        }, i = 1e-10, s = [], o = t._internals, u = o.lazyTweens, a = o.lazyRender, f = new n(null, null, 1, 0), l = r.prototype = new e;
        return l.constructor = r, l.kill()._gc = !1, r.version = "1.14.1", l.invalidate = function() {
            return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), e.prototype.invalidate.call(this)
        }, l.addCallback = function(e, n, r, i) {
            return this.add(t.delayedCall(0, e, r, i), n)
        }, l.removeCallback = function(e, t) {
            if (e)
                if (null == t)
                    this._kill(null, e);
                else
                    for (var n = this.getTweensOf(e, !1), r = n.length, i = this._parseTimeOrLabel(t); --r > -1; )
                        n[r]._startTime === i && n[r]._enabled(!1, !1);
            return this
        }, l.tweenTo = function(e, n) {
            n = n || {};
            var r, i, o, u = {ease: f,overwrite: n.delay ? 2 : 1,useFrames: this.usesFrames(),immediateRender: !1};
            for (i in n)
                u[i] = n[i];
            return u.time = this._parseTimeOrLabel(e), r = Math.abs(Number(u.time) - this._time) / this._timeScale || .001, o = new t(this, r, u), u.onStart = function() {
                o.target.paused(!0), o.vars.time !== o.target.time() && r === o.duration() && o.duration(Math.abs(o.vars.time - o.target.time()) / o.target._timeScale), n.onStart && n.onStart.apply(n.onStartScope || o, n.onStartParams || s)
            }, o
        }, l.tweenFromTo = function(e, t, n) {
            n = n || {}, e = this._parseTimeOrLabel(e), n.startAt = {onComplete: this.seek,onCompleteParams: [e],onCompleteScope: this}, n.immediateRender = n.immediateRender !== !1;
            var r = this.tweenTo(t, n);
            return r.duration(Math.abs(r.vars.time - e) / this._timeScale || .001)
        }, l.render = function(e, t, n) {
            this._gc && this._enabled(!0, !1);
            var r, o, f, l, c, p, d = this._dirty ? this.totalDuration() : this._totalDuration, v = this._duration, m = this._time, g = this._totalTime, y = this._startTime, b = this._timeScale, w = this._rawPrevTime, E = this._paused, S = this._cycle;
            if (e >= d ? (this._locked || (this._totalTime = d, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (o = !0, l = "onComplete", 0 === this._duration && (0 === e || 0 > w || w === i) && w !== e && this._first && (c = !0, w > i && (l = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, this._yoyo && 0 !== (1 & this._cycle) ? this._time = e = 0 : (this._time = v, e = v + 1e-4)) : 1e-7 > e ? (this._locked || (this._totalTime = this._cycle = 0), this._time = 0, (0 !== m || 0 === v && w !== i && (w > 0 || 0 > e && w >= 0) && !this._locked) && (l = "onReverseComplete", o = this._reversed), 0 > e ? (this._active = !1, w >= 0 && this._first && (c = !0), this._rawPrevTime = e) : (this._rawPrevTime = v || !t || e || this._rawPrevTime === e ? e : i, e = 0, this._initted || (c = !0))) : (0 === v && 0 > w && (c = !0), this._time = this._rawPrevTime = e, this._locked || (this._totalTime = e, 0 !== this._repeat && (p = v + this._repeatDelay, this._cycle = this._totalTime / p >> 0, 0 !== this._cycle && this._cycle === this._totalTime / p && this._cycle--, this._time = this._totalTime - this._cycle * p, this._yoyo && 0 !== (1 & this._cycle) && (this._time = v - this._time), this._time > v ? (this._time = v, e = v + 1e-4) : 0 > this._time ? this._time = e = 0 : e = this._time))), this._cycle !== S && !this._locked) {
                var x = this._yoyo && 0 !== (1 & S), T = x === (this._yoyo && 0 !== (1 & this._cycle)), N = this._totalTime, C = this._cycle, k = this._rawPrevTime, L = this._time;
                if (this._totalTime = S * v, S > this._cycle ? x = !x : this._totalTime += v, this._time = m, this._rawPrevTime = 0 === v ? w - 1e-4 : w, this._cycle = S, this._locked = !0, m = x ? 0 : v, this.render(m, t, 0 === v), t || this._gc || this.vars.onRepeat && this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || s), T && (m = x ? v + 1e-4 : -0.0001, this.render(m, !0, !1)), this._locked = !1, this._paused && !E)
                    return;
                this._time = L, this._totalTime = N, this._cycle = C, this._rawPrevTime = k
            }
            if (!(this._time !== m && this._first || n || c))
                return g !== this._totalTime && this._onUpdate && (t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || s)), void 0;
            if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== g && e > 0 && (this._active = !0), 0 === g && this.vars.onStart && 0 !== this._totalTime && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || s)), this._time >= m)
                for (r = this._first; r && (f = r._next, !this._paused || E); )
                    (r._active || r._startTime <= this._time && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = f;
            else
                for (r = this._last; r && (f = r._prev, !this._paused || E); )
                    (r._active || m >= r._startTime && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = f;
            this._onUpdate && (t || (u.length && a(), this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || s))), l && (this._locked || this._gc || (y === this._startTime || b !== this._timeScale) && (0 === this._time || d >= this.totalDuration()) && (o && (u.length && a(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[l] && this.vars[l].apply(this.vars[l + "Scope"] || this, this.vars[l + "Params"] || s)))
        }, l.getActive = function(e, t, n) {
            null == e && (e = !0), null == t && (t = !0), null == n && (n = !1);
            var r, i, s = [], o = this.getChildren(e, t, n), u = 0, a = o.length;
            for (r = 0; a > r; r++)
                i = o[r], i.isActive() && (s[u++] = i);
            return s
        }, l.getLabelAfter = function(e) {
            e || 0 !== e && (e = this._time);
            var t, n = this.getLabelsArray(), r = n.length;
            for (t = 0; r > t; t++)
                if (n[t].time > e)
                    return n[t].name;
            return null
        }, l.getLabelBefore = function(e) {
            null == e && (e = this._time);
            for (var t = this.getLabelsArray(), n = t.length; --n > -1; )
                if (e > t[n].time)
                    return t[n].name;
            return null
        }, l.getLabelsArray = function() {
            var e, t = [], n = 0;
            for (e in this._labels)
                t[n++] = {time: this._labels[e],name: e};
            return t.sort(function(e, t) {
                return e.time - t.time
            }), t
        }, l.progress = function(e, t) {
            return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), t) : this._time / this.duration()
        }, l.totalProgress = function(e, t) {
            return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this._totalTime / this.totalDuration()
        }, l.totalDuration = function(t) {
            return arguments.length ? -1 === this._repeat ? this : this.duration((t - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (e.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration)
        }, l.time = function(e, t) {
            return arguments.length ? (this._dirty && this.totalDuration(), e > this._duration && (e = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? e = this._duration - e + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(e, t)) : this._time
        }, l.repeat = function(e) {
            return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
        }, l.repeatDelay = function(e) {
            return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
        }, l.yoyo = function(e) {
            return arguments.length ? (this._yoyo = e, this) : this._yoyo
        }, l.currentLabel = function(e) {
            return arguments.length ? this.seek(e, !0) : this.getLabelBefore(this._time + 1e-8)
        }, r
    }, !0), function() {
        var e = 180 / Math.PI, t = [], n = [], r = [], i = {}, s = function(e, t, n, r) {
            this.a = e, this.b = t, this.c = n, this.d = r, this.da = r - e, this.ca = n - e, this.ba = t - e
        }, o = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,", u = function(e, t, n, r) {
            var i = {a: e}, s = {}, o = {}, u = {c: r}, a = (e + t) / 2, f = (t + n) / 2, l = (n + r) / 2, c = (a + f) / 2, h = (f + l) / 2, p = (h - c) / 8;
            return i.b = a + (e - a) / 4, s.b = c + p, i.c = s.a = (i.b + s.b) / 2, s.c = o.a = (c + h) / 2, o.b = h - p, u.b = l + (r - l) / 4, o.c = u.a = (o.b + u.b) / 2, [i, s, o, u]
        }, a = function(e, i, s, o, a) {
            var f, l, c, h, p, d, v, m, g, y, b, w, E, S = e.length - 1, x = 0, T = e[0].a;
            for (f = 0; S > f; f++)
                p = e[x], l = p.a, c = p.d, h = e[x + 1].d, a ? (b = t[f], w = n[f], E = .25 * (w + b) * i / (o ? .5 : r[f] || .5), d = c - (c - l) * (o ? .5 * i : 0 !== b ? E / b : 0), v = c + (h - c) * (o ? .5 * i : 0 !== w ? E / w : 0), m = c - (d + ((v - d) * (3 * b / (b + w) + .5) / 4 || 0))) : (d = c - .5 * (c - l) * i, v = c + .5 * (h - c) * i, m = c - (d + v) / 2), d += m, v += m, p.c = g = d, p.b = 0 !== f ? T : T = p.a + .6 * (p.c - p.a), p.da = c - l, p.ca = g - l, p.ba = T - l, s ? (y = u(l, T, g, c), e.splice(x, 1, y[0], y[1], y[2], y[3]), x += 4) : x++, T = v;
            p = e[x], p.b = T, p.c = T + .4 * (p.d - T), p.da = p.d - p.a, p.ca = p.c - p.a, p.ba = T - p.a, s && (y = u(p.a, T, p.c, p.d), e.splice(x, 1, y[0], y[1], y[2], y[3]))
        }, f = function(e, r, i, o) {
            var u, a, f, l, c, h, p = [];
            if (o)
                for (e = [o].concat(e), a = e.length; --a > -1; )
                    "string" == typeof (h = e[a][r]) && "=" === h.charAt(1) && (e[a][r] = o[r] + Number(h.charAt(0) + h.substr(2)));
            if (u = e.length - 2, 0 > u)
                return p[0] = new s(e[0][r], 0, 0, e[-1 > u ? 0 : 1][r]), p;
            for (a = 0; u > a; a++)
                f = e[a][r], l = e[a + 1][r], p[a] = new s(f, 0, 0, l), i && (c = e[a + 2][r], t[a] = (t[a] || 0) + (l - f) * (l - f), n[a] = (n[a] || 0) + (c - l) * (c - l));
            return p[a] = new s(e[a][r], 0, 0, e[a + 1][r]), p
        }, l = function(e, s, u, l, c, h) {
            var p, d, v, m, g, y, b, w, E = {}, S = [], x = h || e[0];
            c = "string" == typeof c ? "," + c + "," : o, null == s && (s = 1);
            for (d in e[0])
                S.push(d);
            if (e.length > 1) {
                for (w = e[e.length - 1], b = !0, p = S.length; --p > -1; )
                    if (d = S[p], Math.abs(x[d] - w[d]) > .05) {
                        b = !1;
                        break
                    }
                b && (e = e.concat(), h && e.unshift(h), e.push(e[1]), h = e[e.length - 3])
            }
            for (t.length = n.length = r.length = 0, p = S.length; --p > -1; )
                d = S[p], i[d] = -1 !== c.indexOf("," + d + ","), E[d] = f(e, d, i[d], h);
            for (p = t.length; --p > -1; )
                t[p] = Math.sqrt(t[p]), n[p] = Math.sqrt(n[p]);
            if (!l) {
                for (p = S.length; --p > -1; )
                    if (i[d])
                        for (v = E[S[p]], y = v.length - 1, m = 0; y > m; m++)
                            g = v[m + 1].da / n[m] + v[m].da / t[m], r[m] = (r[m] || 0) + g * g;
                for (p = r.length; --p > -1; )
                    r[p] = Math.sqrt(r[p])
            }
            for (p = S.length, m = u ? 4 : 1; --p > -1; )
                d = S[p], v = E[d], a(v, s, u, l, i[d]), b && (v.splice(0, m), v.splice(v.length - m, m));
            return E
        }, c = function(e, t, n) {
            t = t || "soft";
            var r, i, o, u, a, f, l, c, h, p, d, v = {}, m = "cubic" === t ? 3 : 2, g = "soft" === t, y = [];
            if (g && n && (e = [n].concat(e)), null == e || m + 1 > e.length)
                throw "invalid Bezier data";
            for (h in e[0])
                y.push(h);
            for (f = y.length; --f > -1; ) {
                for (h = y[f], v[h] = a = [], p = 0, c = e.length, l = 0; c > l; l++)
                    r = null == n ? e[l][h] : "string" == typeof (d = e[l][h]) && "=" === d.charAt(1) ? n[h] + Number(d.charAt(0) + d.substr(2)) : Number(d), g && l > 1 && c - 1 > l && (a[p++] = (r + a[p - 2]) / 2), a[p++] = r;
                for (c = p - m + 1, p = 0, l = 0; c > l; l += m)
                    r = a[l], i = a[l + 1], o = a[l + 2], u = 2 === m ? 0 : a[l + 3], a[p++] = d = 3 === m ? new s(r, i, o, u) : new s(r, (2 * i + r) / 3, (2 * i + o) / 3, o);
                a.length = p
            }
            return v
        }, h = function(e, t, n) {
            for (var r, i, s, o, u, a, f, l, c, h, p, d = 1 / n, v = e.length; --v > -1; )
                for (h = e[v], s = h.a, o = h.d - s, u = h.c - s, a = h.b - s, r = i = 0, l = 1; n >= l; l++)
                    f = d * l, c = 1 - f, r = i - (i = (f * f * o + 3 * c * (f * u + c * a)) * f), p = v * n + l - 1, t[p] = (t[p] || 0) + r * r
        }, p = function(e, t) {
            t = t >> 0 || 6;
            var n, r, i, s, o = [], u = [], a = 0, f = 0, l = t - 1, c = [], p = [];
            for (n in e)
                h(e[n], o, t);
            for (i = o.length, r = 0; i > r; r++)
                a += Math.sqrt(o[r]), s = r % t, p[s] = a, s === l && (f += a, s = r / t >> 0, c[s] = p, u[s] = f, a = 0, p = []);
            return {length: f,lengths: u,segments: c}
        }, d = _gsScope._gsDefine.plugin({propName: "bezier",priority: -1,version: "1.3.3",API: 2,global: !0,init: function(e, t, n) {
                this._target = e, t instanceof Array && (t = {values: t}), this._func = {}, this._round = {}, this._props = [], this._timeRes = null == t.timeResolution ? 6 : parseInt(t.timeResolution, 10);
                var r, i, s, o, u, a = t.values || [], f = {}, h = a[0], d = t.autoRotate || n.vars.orientToBezier;
                this._autoRotate = d ? d instanceof Array ? d : [["x", "y", "rotation", d === !0 ? 0 : Number(d) || 0]] : null;
                for (r in h)
                    this._props.push(r);
                for (s = this._props.length; --s > -1; )
                    r = this._props[s], this._overwriteProps.push(r), i = this._func[r] = "function" == typeof e[r], f[r] = i ? e[r.indexOf("set") || "function" != typeof e["get" + r.substr(3)] ? r : "get" + r.substr(3)]() : parseFloat(e[r]), u || f[r] !== a[0][r] && (u = f);
                if (this._beziers = "cubic" !== t.type && "quadratic" !== t.type && "soft" !== t.type ? l(a, isNaN(t.curviness) ? 1 : t.curviness, !1, "thruBasic" === t.type, t.correlate, u) : c(a, t.type, f), this._segCount = this._beziers[r].length, this._timeRes) {
                    var v = p(this._beziers, this._timeRes);
                    this._length = v.length, this._lengths = v.lengths, this._segments = v.segments, this._l1 = this._li = this._s1 = this._si = 0, this._l2 = this._lengths[0], this._curSeg = this._segments[0], this._s2 = this._curSeg[0], this._prec = 1 / this._curSeg.length
                }
                if (d = this._autoRotate)
                    for (this._initialRotations = [], d[0] instanceof Array || (this._autoRotate = d = [d]), s = d.length; --s > -1; ) {
                        for (o = 0; 3 > o; o++)
                            r = d[s][o], this._func[r] = "function" == typeof e[r] ? e[r.indexOf("set") || "function" != typeof e["get" + r.substr(3)] ? r : "get" + r.substr(3)] : !1;
                        r = d[s][2], this._initialRotations[s] = this._func[r] ? this._func[r].call(this._target) : this._target[r]
                    }
                return this._startRatio = n.vars.runBackwards ? 1 : 0, !0
            },set: function(t) {
                var n, r, i, s, o, u, a, f, l, c, h = this._segCount, p = this._func, d = this._target, v = t !== this._startRatio;
                if (this._timeRes) {
                    if (l = this._lengths, c = this._curSeg, t *= this._length, i = this._li, t > this._l2 && h - 1 > i) {
                        for (f = h - 1; f > i && t >= (this._l2 = l[++i]); )
                            ;
                        this._l1 = l[i - 1], this._li = i, this._curSeg = c = this._segments[i], this._s2 = c[this._s1 = this._si = 0]
                    } else if (this._l1 > t && i > 0) {
                        for (; i > 0 && (this._l1 = l[--i]) >= t; )
                            ;
                        0 === i && this._l1 > t ? this._l1 = 0 : i++, this._l2 = l[i], this._li = i, this._curSeg = c = this._segments[i], this._s1 = c[(this._si = c.length - 1) - 1] || 0, this._s2 = c[this._si]
                    }
                    if (n = i, t -= this._l1, i = this._si, t > this._s2 && c.length - 1 > i) {
                        for (f = c.length - 1; f > i && t >= (this._s2 = c[++i]); )
                            ;
                        this._s1 = c[i - 1], this._si = i
                    } else if (this._s1 > t && i > 0) {
                        for (; i > 0 && (this._s1 = c[--i]) >= t; )
                            ;
                        0 === i && this._s1 > t ? this._s1 = 0 : i++, this._s2 = c[i], this._si = i
                    }
                    u = (i + (t - this._s1) / (this._s2 - this._s1)) * this._prec
                } else
                    n = 0 > t ? 0 : t >= 1 ? h - 1 : h * t >> 0, u = (t - n * (1 / h)) * h;
                for (r = 1 - u, i = this._props.length; --i > -1; )
                    s = this._props[i], o = this._beziers[s][n], a = (u * u * o.da + 3 * r * (u * o.ca + r * o.ba)) * u + o.a, this._round[s] && (a = Math.round(a)), p[s] ? d[s](a) : d[s] = a;
                if (this._autoRotate) {
                    var m, g, y, b, w, E, S, x = this._autoRotate;
                    for (i = x.length; --i > -1; )
                        s = x[i][2], E = x[i][3] || 0, S = x[i][4] === !0 ? 1 : e, o = this._beziers[x[i][0]], m = this._beziers[x[i][1]], o && m && (o = o[n], m = m[n], g = o.a + (o.b - o.a) * u, b = o.b + (o.c - o.b) * u, g += (b - g) * u, b += (o.c + (o.d - o.c) * u - b) * u, y = m.a + (m.b - m.a) * u, w = m.b + (m.c - m.b) * u, y += (w - y) * u, w += (m.c + (m.d - m.c) * u - w) * u, a = v ? Math.atan2(w - y, b - g) * S + E : this._initialRotations[i], p[s] ? d[s](a) : d[s] = a)
                }
            }}), v = d.prototype;
        d.bezierThrough = l, d.cubicToQuadratic = u, d._autoCSS = !0, d.quadraticToCubic = function(e, t, n) {
            return new s(e, (2 * t + e) / 3, (2 * t + n) / 3, n)
        }, d._cssRegister = function() {
            var e = _gsScope._gsDefine.globals.CSSPlugin;
            if (e) {
                var t = e._internals, n = t._parseToProxy, r = t._setPluginRatio, i = t.CSSPropTween;
                t._registerComplexSpecialProp("bezier", {parser: function(e, t, s, o, u, a) {
                        t instanceof Array && (t = {values: t}), a = new d;
                        var f, l, c, h = t.values, p = h.length - 1, v = [], m = {};
                        if (0 > p)
                            return u;
                        for (f = 0; p >= f; f++)
                            c = n(e, h[f], o, u, a, p !== f), v[f] = c.end;
                        for (l in t)
                            m[l] = t[l];
                        return m.values = v, u = new i(e, "bezier", 0, 0, c.pt, 2), u.data = c, u.plugin = a, u.setRatio = r, 0 === m.autoRotate && (m.autoRotate = !0), !m.autoRotate || m.autoRotate instanceof Array || (f = m.autoRotate === !0 ? 0 : Number(m.autoRotate), m.autoRotate = null != c.end.left ? [["left", "top", "rotation", f, !1]] : null != c.end.x ? [["x", "y", "rotation", f, !1]] : !1), m.autoRotate && (o._transform || o._enableTransforms(!1), c.autoRotate = o._target._gsTransform), a._onInitTween(c.proxy, m, o._tween), u
                    }})
            }
        }, v._roundProps = function(e, t) {
            for (var n = this._overwriteProps, r = n.length; --r > -1; )
                (e[n[r]] || e.bezier || e.bezierThrough) && (this._round[n[r]] = t)
        }, v._kill = function(e) {
            var t, n, r = this._props;
            for (t in this._beziers)
                if (t in e)
                    for (delete this._beziers[t], delete this._func[t], n = r.length; --n > -1; )
                        r[n] === t && r.splice(n, 1);
            return this._super._kill.call(this, e)
        }
    }(), _gsScope._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function(e, t) {
        var n, r, i, s, o = function() {
            e.call(this, "css"), this._overwriteProps.length = 0, this.setRatio = o.prototype.setRatio
        }, u = {}, a = o.prototype = new e("css");
        a.constructor = o, o.version = "1.14.1", o.API = 2, o.defaultTransformPerspective = 0, o.defaultSkewType = "compensated", a = "px", o.suffixMap = {top: a,right: a,bottom: a,left: a,width: a,height: a,fontSize: a,padding: a,margin: a,perspective: a,lineHeight: ""};
        var f, l, c, h, p, d, v = /(?:\d|\-\d|\.\d|\-\.\d)+/g, m = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g, g = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi, y = /[^\d\-\.]/g, b = /(?:\d|\-|\+|=|#|\.)*/g, w = /opacity *= *([^)]*)/i, E = /opacity:([^;]*)/i, S = /alpha\(opacity *=.+?\)/i, x = /^(rgb|hsl)/, T = /([A-Z])/g, N = /-([a-z])/gi, C = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi, k = function(e, t) {
            return t.toUpperCase()
        }, L = /(?:Left|Right|Width)/i, A = /(M11|M12|M21|M22)=[\d\-\.e]+/gi, O = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i, M = /,(?=[^\)]*(?:\(|$))/gi, _ = Math.PI / 180, D = 180 / Math.PI, P = {}, H = document, B = (H.documentElement, H.createElement("div")), j = H.createElement("img"), F = o._internals = {_specialProps: u}, I = navigator.userAgent, q = function() {
            var e, t = I.indexOf("Android"), n = H.createElement("div");
            return c = -1 !== I.indexOf("Safari") && -1 === I.indexOf("Chrome") && (-1 === t || Number(I.substr(t + 8, 1)) > 3), p = c && 6 > Number(I.substr(I.indexOf("Version/") + 8, 1)), h = -1 !== I.indexOf("Firefox"), (/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(I) || /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(I)) && (d = parseFloat(RegExp.$1)), n.innerHTML = "<a style='top:1px;opacity:.55;'>a</a>", e = n.getElementsByTagName("a")[0], e ? /^0.55/.test(e.style.opacity) : !1
        }(), R = function(e) {
            return w.test("string" == typeof e ? e : (e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1
        }, U = function(e) {
            window.console && console.log(e)
        }, z = "", W = "", X = function(e, t) {
            t = t || B;
            var n, r, i = t.style;
            if (void 0 !== i[e])
                return e;
            for (e = e.charAt(0).toUpperCase() + e.substr(1), n = ["O", "Moz", "ms", "Ms", "Webkit"], r = 5; --r > -1 && void 0 === i[n[r] + e]; )
                ;
            return r >= 0 ? (W = 3 === r ? "ms" : n[r], z = "-" + W.toLowerCase() + "-", W + e) : null
        }, V = H.defaultView ? H.defaultView.getComputedStyle : function() {
        }, $ = o.getStyle = function(e, t, n, r, i) {
            var s;
            return q || "opacity" !== t ? (!r && e.style[t] ? s = e.style[t] : (n = n || V(e)) ? s = n[t] || n.getPropertyValue(t) || n.getPropertyValue(t.replace(T, "-$1").toLowerCase()) : e.currentStyle && (s = e.currentStyle[t]), null == i || s && "none" !== s && "auto" !== s && "auto auto" !== s ? s : i) : R(e)
        }, J = F.convertToPixels = function(e, n, r, i, s) {
            if ("px" === i || !i)
                return r;
            if ("auto" === i || !r)
                return 0;
            var u, a, f, l = L.test(n), c = e, h = B.style, p = 0 > r;
            if (p && (r = -r), "%" === i && -1 !== n.indexOf("border"))
                u = r / 100 * (l ? e.clientWidth : e.clientHeight);
            else {
                if (h.cssText = "border:0 solid red;position:" + $(e, "position") + ";line-height:0;", "%" !== i && c.appendChild)
                    h[l ? "borderLeftWidth" : "borderTopWidth"] = r + i;
                else {
                    if (c = e.parentNode || H.body, a = c._gsCache, f = t.ticker.frame, a && l && a.time === f)
                        return a.width * r / 100;
                    h[l ? "width" : "height"] = r + i
                }
                c.appendChild(B), u = parseFloat(B[l ? "offsetWidth" : "offsetHeight"]), c.removeChild(B), l && "%" === i && o.cacheWidths !== !1 && (a = c._gsCache = c._gsCache || {}, a.time = f, a.width = 100 * (u / r)), 0 !== u || s || (u = J(e, n, r, i, !0))
            }
            return p ? -u : u
        }, K = F.calculateOffset = function(e, t, n) {
            if ("absolute" !== $(e, "position", n))
                return 0;
            var r = "left" === t ? "Left" : "Top", i = $(e, "margin" + r, n);
            return e["offset" + r] - (J(e, t, parseFloat(i), i.replace(b, "")) || 0)
        }, Q = function(e, t) {
            var n, r, i = {};
            if (t = t || V(e, null))
                if (n = t.length)
                    for (; --n > -1; )
                        i[t[n].replace(N, k)] = t.getPropertyValue(t[n]);
                else
                    for (n in t)
                        i[n] = t[n];
            else if (t = e.currentStyle || e.style)
                for (n in t)
                    "string" == typeof n && void 0 === i[n] && (i[n.replace(N, k)] = t[n]);
            return q || (i.opacity = R(e)), r = kt(e, t, !1), i.rotation = r.rotation, i.skewX = r.skewX, i.scaleX = r.scaleX, i.scaleY = r.scaleY, i.x = r.x, i.y = r.y, St && (i.z = r.z, i.rotationX = r.rotationX, i.rotationY = r.rotationY, i.scaleZ = r.scaleZ), i.filters && delete i.filters, i
        }, G = function(e, t, n, r, i) {
            var s, o, u, a = {}, f = e.style;
            for (o in n)
                "cssText" !== o && "length" !== o && isNaN(o) && (t[o] !== (s = n[o]) || i && i[o]) && -1 === o.indexOf("Origin") && ("number" == typeof s || "string" == typeof s) && (a[o] = "auto" !== s || "left" !== o && "top" !== o ? "" !== s && "auto" !== s && "none" !== s || "string" != typeof t[o] || "" === t[o].replace(y, "") ? s : 0 : K(e, o), void 0 !== f[o] && (u = new ct(f, o, f[o], u)));
            if (r)
                for (o in r)
                    "className" !== o && (a[o] = r[o]);
            return {difs: a,firstMPT: u}
        }, Y = {width: ["Left", "Right"],height: ["Top", "Bottom"]}, Z = ["marginLeft", "marginRight", "marginTop", "marginBottom"], et = function(e, t, n) {
            var r = parseFloat("width" === t ? e.offsetWidth : e.offsetHeight), i = Y[t], s = i.length;
            for (n = n || V(e, null); --s > -1; )
                r -= parseFloat($(e, "padding" + i[s], n, !0)) || 0, r -= parseFloat($(e, "border" + i[s] + "Width", n, !0)) || 0;
            return r
        }, tt = function(e, t) {
            (null == e || "" === e || "auto" === e || "auto auto" === e) && (e = "0 0");
            var n = e.split(" "), r = -1 !== e.indexOf("left") ? "0%" : -1 !== e.indexOf("right") ? "100%" : n[0], i = -1 !== e.indexOf("top") ? "0%" : -1 !== e.indexOf("bottom") ? "100%" : n[1];
            return null == i ? i = "0" : "center" === i && (i = "50%"), ("center" === r || isNaN(parseFloat(r)) && -1 === (r + "").indexOf("=")) && (r = "50%"), t && (t.oxp = -1 !== r.indexOf("%"), t.oyp = -1 !== i.indexOf("%"), t.oxr = "=" === r.charAt(1), t.oyr = "=" === i.charAt(1), t.ox = parseFloat(r.replace(y, "")), t.oy = parseFloat(i.replace(y, ""))), r + " " + i + (n.length > 2 ? " " + n[2] : "")
        }, nt = function(e, t) {
            return "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) : parseFloat(e) - parseFloat(t)
        }, rt = function(e, t) {
            return null == e ? t : "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) + t : parseFloat(e)
        }, it = function(e, t, n, r) {
            var i, s, o, u, a = 1e-6;
            return null == e ? u = t : "number" == typeof e ? u = e : (i = 360, s = e.split("_"), o = Number(s[0].replace(y, "")) * (-1 === e.indexOf("rad") ? 1 : D) - ("=" === e.charAt(1) ? 0 : t), s.length && (r && (r[n] = t + o), -1 !== e.indexOf("short") && (o %= i, o !== o % (i / 2) && (o = 0 > o ? o + i : o - i)), -1 !== e.indexOf("_cw") && 0 > o ? o = (o + 9999999999 * i) % i - (0 | o / i) * i : -1 !== e.indexOf("ccw") && o > 0 && (o = (o - 9999999999 * i) % i - (0 | o / i) * i)), u = t + o), a > u && u > -a && (u = 0), u
        }, st = {aqua: [0, 255, 255],lime: [0, 255, 0],silver: [192, 192, 192],black: [0, 0, 0],maroon: [128, 0, 0],teal: [0, 128, 128],blue: [0, 0, 255],navy: [0, 0, 128],white: [255, 255, 255],fuchsia: [255, 0, 255],olive: [128, 128, 0],yellow: [255, 255, 0],orange: [255, 165, 0],gray: [128, 128, 128],purple: [128, 0, 128],green: [0, 128, 0],red: [255, 0, 0],pink: [255, 192, 203],cyan: [0, 255, 255],transparent: [255, 255, 255, 0]}, ot = function(e, t, n) {
            return e = 0 > e ? e + 1 : e > 1 ? e - 1 : e, 0 | 255 * (1 > 6 * e ? t + 6 * (n - t) * e : .5 > e ? n : 2 > 3 * e ? t + 6 * (n - t) * (2 / 3 - e) : t) + .5
        }, ut = function(e) {
            var t, n, r, i, s, o;
            return e && "" !== e ? "number" == typeof e ? [e >> 16, 255 & e >> 8, 255 & e] : ("," === e.charAt(e.length - 1) && (e = e.substr(0, e.length - 1)), st[e] ? st[e] : "#" === e.charAt(0) ? (4 === e.length && (t = e.charAt(1), n = e.charAt(2), r = e.charAt(3), e = "#" + t + t + n + n + r + r), e = parseInt(e.substr(1), 16), [e >> 16, 255 & e >> 8, 255 & e]) : "hsl" === e.substr(0, 3) ? (e = e.match(v), i = Number(e[0]) % 360 / 360, s = Number(e[1]) / 100, o = Number(e[2]) / 100, n = .5 >= o ? o * (s + 1) : o + s - o * s, t = 2 * o - n, e.length > 3 && (e[3] = Number(e[3])), e[0] = ot(i + 1 / 3, t, n), e[1] = ot(i, t, n), e[2] = ot(i - 1 / 3, t, n), e) : (e = e.match(v) || st.transparent, e[0] = Number(e[0]), e[1] = Number(e[1]), e[2] = Number(e[2]), e.length > 3 && (e[3] = Number(e[3])), e)) : st.black
        }, at = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";
        for (a in st)
            at += "|" + a + "\\b";
        at = RegExp(at + ")", "gi");
        var ft = function(e, t, n, r) {
            if (null == e)
                return function(e) {
                    return e
                };
            var i, s = t ? (e.match(at) || [""])[0] : "", o = e.split(s).join("").match(g) || [], u = e.substr(0, e.indexOf(o[0])), a = ")" === e.charAt(e.length - 1) ? ")" : "", f = -1 !== e.indexOf(" ") ? " " : ",", l = o.length, c = l > 0 ? o[0].replace(v, "") : "";
            return l ? i = t ? function(e) {
                var t, h, p, d;
                if ("number" == typeof e)
                    e += c;
                else if (r && M.test(e)) {
                    for (d = e.replace(M, "|").split("|"), p = 0; d.length > p; p++)
                        d[p] = i(d[p]);
                    return d.join(",")
                }
                if (t = (e.match(at) || [s])[0], h = e.split(t).join("").match(g) || [], p = h.length, l > p--)
                    for (; l > ++p; )
                        h[p] = n ? h[0 | (p - 1) / 2] : o[p];
                return u + h.join(f) + f + t + a + (-1 !== e.indexOf("inset") ? " inset" : "")
            } : function(e) {
                var t, s, h;
                if ("number" == typeof e)
                    e += c;
                else if (r && M.test(e)) {
                    for (s = e.replace(M, "|").split("|"), h = 0; s.length > h; h++)
                        s[h] = i(s[h]);
                    return s.join(",")
                }
                if (t = e.match(g) || [], h = t.length, l > h--)
                    for (; l > ++h; )
                        t[h] = n ? t[0 | (h - 1) / 2] : o[h];
                return u + t.join(f) + a
            } : function(e) {
                return e
            }
        }, lt = function(e) {
            return e = e.split(","), function(t, n, r, i, s, o, u) {
                var a, f = (n + "").split(" ");
                for (u = {}, a = 0; 4 > a; a++)
                    u[e[a]] = f[a] = f[a] || f[(a - 1) / 2 >> 0];
                return i.parse(t, u, s, o)
            }
        }, ct = (F._setPluginRatio = function(e) {
            this.plugin.setRatio(e);
            for (var t, n, r, i, s = this.data, o = s.proxy, u = s.firstMPT, a = 1e-6; u; )
                t = o[u.v], u.r ? t = Math.round(t) : a > t && t > -a && (t = 0), u.t[u.p] = t, u = u._next;
            if (s.autoRotate && (s.autoRotate.rotation = o.rotation), 1 === e)
                for (u = s.firstMPT; u; ) {
                    if (n = u.t, n.type) {
                        if (1 === n.type) {
                            for (i = n.xs0 + n.s + n.xs1, r = 1; n.l > r; r++)
                                i += n["xn" + r] + n["xs" + (r + 1)];
                            n.e = i
                        }
                    } else
                        n.e = n.s + n.xs0;
                    u = u._next
                }
        }, function(e, t, n, r, i) {
            this.t = e, this.p = t, this.v = n, this.r = i, r && (r._prev = this, this._next = r)
        }), ht = (F._parseToProxy = function(e, t, n, r, i, s) {
            var o, u, a, f, l, c = r, h = {}, p = {}, d = n._transform, v = P;
            for (n._transform = null, P = t, r = l = n.parse(e, t, r, i), P = v, s && (n._transform = d, c && (c._prev = null, c._prev && (c._prev._next = null))); r && r !== c; ) {
                if (1 >= r.type && (u = r.p, p[u] = r.s + r.c, h[u] = r.s, s || (f = new ct(r, "s", u, f, r.r), r.c = 0), 1 === r.type))
                    for (o = r.l; --o > 0; )
                        a = "xn" + o, u = r.p + "_" + a, p[u] = r.data[a], h[u] = r[a], s || (f = new ct(r, a, u, f, r.rxp[a]));
                r = r._next
            }
            return {proxy: h,end: p,firstMPT: f,pt: l}
        }, F.CSSPropTween = function(e, t, r, i, o, u, a, f, l, c, h) {
            this.t = e, this.p = t, this.s = r, this.c = i, this.n = a || t, e instanceof ht || s.push(this.n), this.r = f, this.type = u || 0, l && (this.pr = l, n = !0), this.b = void 0 === c ? r : c, this.e = void 0 === h ? r + i : h, o && (this._next = o, o._prev = this)
        }), pt = o.parseComplex = function(e, t, n, r, i, s, o, u, a, l) {
            n = n || s || "", o = new ht(e, t, 0, 0, o, l ? 2 : 1, null, !1, u, n, r), r += "";
            var c, h, p, d, g, y, b, w, E, S, T, N, C = n.split(", ").join(",").split(" "), k = r.split(", ").join(",").split(" "), L = C.length, A = f !== !1;
            for ((-1 !== r.indexOf(",") || -1 !== n.indexOf(",")) && (C = C.join(" ").replace(M, ", ").split(" "), k = k.join(" ").replace(M, ", ").split(" "), L = C.length), L !== k.length && (C = (s || "").split(" "), L = C.length), o.plugin = a, o.setRatio = l, c = 0; L > c; c++)
                if (d = C[c], g = k[c], w = parseFloat(d), w || 0 === w)
                    o.appendXtra("", w, nt(g, w), g.replace(m, ""), A && -1 !== g.indexOf("px"), !0);
                else if (i && ("#" === d.charAt(0) || st[d] || x.test(d)))
                    N = "," === g.charAt(g.length - 1) ? ")," : ")", d = ut(d), g = ut(g), E = d.length + g.length > 6, E && !q && 0 === g[3] ? (o["xs" + o.l] += o.l ? " transparent" : "transparent", o.e = o.e.split(k[c]).join("transparent")) : (q || (E = !1), o.appendXtra(E ? "rgba(" : "rgb(", d[0], g[0] - d[0], ",", !0, !0).appendXtra("", d[1], g[1] - d[1], ",", !0).appendXtra("", d[2], g[2] - d[2], E ? "," : N, !0), E && (d = 4 > d.length ? 1 : d[3], o.appendXtra("", d, (4 > g.length ? 1 : g[3]) - d, N, !1)));
                else if (y = d.match(v)) {
                    if (b = g.match(m), !b || b.length !== y.length)
                        return o;
                    for (p = 0, h = 0; y.length > h; h++)
                        T = y[h], S = d.indexOf(T, p), o.appendXtra(d.substr(p, S - p), Number(T), nt(b[h], T), "", A && "px" === d.substr(S + T.length, 2), 0 === h), p = S + T.length;
                    o["xs" + o.l] += d.substr(p)
                } else
                    o["xs" + o.l] += o.l ? " " + d : d;
            if (-1 !== r.indexOf("=") && o.data) {
                for (N = o.xs0 + o.data.s, c = 1; o.l > c; c++)
                    N += o["xs" + c] + o.data["xn" + c];
                o.e = N + o["xs" + c]
            }
            return o.l || (o.type = -1, o.xs0 = o.e), o.xfirst || o
        }, dt = 9;
        for (a = ht.prototype, a.l = a.pr = 0; --dt > 0; )
            a["xn" + dt] = 0, a["xs" + dt] = "";
        a.xs0 = "", a._next = a._prev = a.xfirst = a.data = a.plugin = a.setRatio = a.rxp = null, a.appendXtra = function(e, t, n, r, i, s) {
            var o = this, u = o.l;
            return o["xs" + u] += s && u ? " " + e : e || "", n || 0 === u || o.plugin ? (o.l++, o.type = o.setRatio ? 2 : 1, o["xs" + o.l] = r || "", u > 0 ? (o.data["xn" + u] = t + n, o.rxp["xn" + u] = i, o["xn" + u] = t, o.plugin || (o.xfirst = new ht(o, "xn" + u, t, n, o.xfirst || o, 0, o.n, i, o.pr), o.xfirst.xs0 = 0), o) : (o.data = {s: t + n}, o.rxp = {}, o.s = t, o.c = n, o.r = i, o)) : (o["xs" + u] += t + (r || ""), o)
        };
        var vt = function(e, t) {
            t = t || {}, this.p = t.prefix ? X(e) || e : e, u[e] = u[this.p] = this, this.format = t.formatter || ft(t.defaultValue, t.color, t.collapsible, t.multi), t.parser && (this.parse = t.parser), this.clrs = t.color, this.multi = t.multi, this.keyword = t.keyword, this.dflt = t.defaultValue, this.pr = t.priority || 0
        }, mt = F._registerComplexSpecialProp = function(e, t, n) {
            "object" != typeof t && (t = {parser: n});
            var r, i, s = e.split(","), o = t.defaultValue;
            for (n = n || [o], r = 0; s.length > r; r++)
                t.prefix = 0 === r && t.prefix, t.defaultValue = n[r] || o, i = new vt(s[r], t)
        }, gt = function(e) {
            if (!u[e]) {
                var t = e.charAt(0).toUpperCase() + e.substr(1) + "Plugin";
                mt(e, {parser: function(e, n, r, i, s, o, a) {
                        var f = (_gsScope.GreenSockGlobals || _gsScope).com.greensock.plugins[t];
                        return f ? (f._cssRegister(), u[r].parse(e, n, r, i, s, o, a)) : (U("Error: " + t + " js file not loaded."), s)
                    }})
            }
        };
        a = vt.prototype, a.parseComplex = function(e, t, n, r, i, s) {
            var o, u, a, f, l, c, h = this.keyword;
            if (this.multi && (M.test(n) || M.test(t) ? (u = t.replace(M, "|").split("|"), a = n.replace(M, "|").split("|")) : h && (u = [t], a = [n])), a) {
                for (f = a.length > u.length ? a.length : u.length, o = 0; f > o; o++)
                    t = u[o] = u[o] || this.dflt, n = a[o] = a[o] || this.dflt, h && (l = t.indexOf(h), c = n.indexOf(h), l !== c && (n = -1 === c ? a : u, n[o] += " " + h));
                t = u.join(", "), n = a.join(", ")
            }
            return pt(e, this.p, t, n, this.clrs, this.dflt, r, this.pr, i, s)
        }, a.parse = function(e, t, n, r, s, o) {
            return this.parseComplex(e.style, this.format($(e, this.p, i, !1, this.dflt)), this.format(t), s, o)
        }, o.registerSpecialProp = function(e, t, n) {
            mt(e, {parser: function(e, r, i, s, o, u) {
                    var a = new ht(e, i, 0, 0, o, 2, i, !1, n);
                    return a.plugin = u, a.setRatio = t(e, r, s._tween, i), a
                },priority: n})
        };
        var yt = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","), bt = X("transform"), wt = z + "transform", Et = X("transformOrigin"), St = null !== X("perspective"), xt = F.Transform = function() {
            this.skewY = 0
        }, Tt = window.SVGElement, Nt = Tt && (d || /Android/i.test(I) && !window.chrome), Ct = function(e, t, n) {
            var r = e.getBBox();
            t = tt(t).split(" "), n.xOrigin = (-1 !== t[0].indexOf("%") ? parseFloat(t[0]) / 100 * r.width : parseFloat(t[0])) + r.x, n.yOrigin = (-1 !== t[1].indexOf("%") ? parseFloat(t[1]) / 100 * r.height : parseFloat(t[1])) + r.y
        }, kt = F.getTransform = function(e, t, n, r) {
            if (e._gsTransform && n && !r)
                return e._gsTransform;
            var s, u, a, f, l, c, h, p, d, v, m, g, y, b = n ? e._gsTransform || new xt : new xt, w = 0 > b.scaleX, E = 2e-5, S = 1e5, x = 179.99, T = x * _, N = St ? parseFloat($(e, Et, t, !1, "0 0 0").split(" ")[2]) || b.zOrigin || 0 : 0, C = parseFloat(o.defaultTransformPerspective) || 0;
            if (bt ? s = $(e, wt, t, !0) : e.currentStyle && (s = e.currentStyle.filter.match(A), s = s && 4 === s.length ? [s[0].substr(4), Number(s[2].substr(4)), Number(s[1].substr(4)), s[3].substr(4), b.x || 0, b.y || 0].join(",") : ""), s && "none" !== s && "matrix(1, 0, 0, 1, 0, 0)" !== s) {
                for (u = (s || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [], a = u.length; --a > -1; )
                    f = Number(u[a]), u[a] = (l = f - (f |= 0)) ? (0 | l * S + (0 > l ? -0.5 : .5)) / S + f : f;
                if (16 === u.length) {
                    var k = u[8], L = u[9], O = u[10], M = u[12], P = u[13], H = u[14];
                    if (b.zOrigin && (H = -b.zOrigin, M = k * H - u[12], P = L * H - u[13], H = O * H + b.zOrigin - u[14]), !n || r || null == b.rotationX) {
                        var B, j, F, I, q, R, U, z = u[0], W = u[1], X = u[2], V = u[3], J = u[4], K = u[5], Q = u[6], G = u[7], Y = u[11], Z = Math.atan2(Q, O), et = -T > Z || Z > T;
                        b.rotationX = Z * D, Z && (I = Math.cos(-Z), q = Math.sin(-Z), B = J * I + k * q, j = K * I + L * q, F = Q * I + O * q, k = J * -q + k * I, L = K * -q + L * I, O = Q * -q + O * I, Y = G * -q + Y * I, J = B, K = j, Q = F), Z = Math.atan2(k, z), b.rotationY = Z * D, Z && (R = -T > Z || Z > T, I = Math.cos(-Z), q = Math.sin(-Z), B = z * I - k * q, j = W * I - L * q, F = X * I - O * q, L = W * q + L * I, O = X * q + O * I, Y = V * q + Y * I, z = B, W = j, X = F), Z = Math.atan2(W, K), b.rotation = Z * D, Z && (U = -T > Z || Z > T, I = Math.cos(-Z), q = Math.sin(-Z), z = z * I + J * q, j = W * I + K * q, K = W * -q + K * I, Q = X * -q + Q * I, W = j), U && et ? b.rotation = b.rotationX = 0 : U && R ? b.rotation = b.rotationY = 0 : R && et && (b.rotationY = b.rotationX = 0), b.scaleX = (0 | Math.sqrt(z * z + W * W) * S + .5) / S, b.scaleY = (0 | Math.sqrt(K * K + L * L) * S + .5) / S, b.scaleZ = (0 | Math.sqrt(Q * Q + O * O) * S + .5) / S, b.skewX = 0, b.perspective = Y ? 1 / (0 > Y ? -Y : Y) : 0, b.x = M, b.y = P, b.z = H
                    }
                } else if (!(St && !r && u.length && b.x === u[4] && b.y === u[5] && (b.rotationX || b.rotationY) || void 0 !== b.x && "none" === $(e, "display", t))) {
                    var tt = u.length >= 6, nt = tt ? u[0] : 1, rt = u[1] || 0, it = u[2] || 0, st = tt ? u[3] : 1;
                    b.x = u[4] || 0, b.y = u[5] || 0, c = Math.sqrt(nt * nt + rt * rt), h = Math.sqrt(st * st + it * it), p = nt || rt ? Math.atan2(rt, nt) * D : b.rotation || 0, d = it || st ? Math.atan2(it, st) * D + p : b.skewX || 0, v = c - Math.abs(b.scaleX || 0), m = h - Math.abs(b.scaleY || 0), Math.abs(d) > 90 && 270 > Math.abs(d) && (w ? (c *= -1, d += 0 >= p ? 180 : -180, p += 0 >= p ? 180 : -180) : (h *= -1, d += 0 >= d ? 180 : -180)), g = (p - b.rotation) % 180, y = (d - b.skewX) % 180, (void 0 === b.skewX || v > E || -E > v || m > E || -E > m || g > -x && x > g && !1 | g * S || y > -x && x > y && !1 | y * S) && (b.scaleX = c, b.scaleY = h, b.rotation = p, b.skewX = d), St && (b.rotationX = b.rotationY = b.z = 0, b.perspective = C, b.scaleZ = 1)
                }
                b.zOrigin = N;
                for (a in b)
                    E > b[a] && b[a] > -E && (b[a] = 0)
            } else
                b = {x: 0,y: 0,z: 0,scaleX: 1,scaleY: 1,scaleZ: 1,skewX: 0,skewY: 0,perspective: C,rotation: 0,rotationX: 0,rotationY: 0,zOrigin: 0};
            return n && (e._gsTransform = b), b.svg = Tt && e instanceof Tt, b.svg && Ct(e, $(e, Et, i, !1, "50% 50%") + "", b), b.xPercent = b.yPercent = 0, b
        }, Lt = function(e) {
            var t, n, r = this.data, i = -r.rotation * _, s = i + r.skewX * _, o = 1e5, u = (0 | Math.cos(i) * r.scaleX * o) / o, a = (0 | Math.sin(i) * r.scaleX * o) / o, f = (0 | Math.sin(s) * -r.scaleY * o) / o, l = (0 | Math.cos(s) * r.scaleY * o) / o, c = this.t.style, h = this.t.currentStyle;
            if (h) {
                n = a, a = -f, f = -n, t = h.filter, c.filter = "";
                var p, v, m = this.t.offsetWidth, g = this.t.offsetHeight, y = "absolute" !== h.position, E = "progid:DXImageTransform.Microsoft.Matrix(M11=" + u + ", M12=" + a + ", M21=" + f + ", M22=" + l, S = r.x + m * r.xPercent / 100, x = r.y + g * r.yPercent / 100;
                if (null != r.ox && (p = (r.oxp ? .01 * m * r.ox : r.ox) - m / 2, v = (r.oyp ? .01 * g * r.oy : r.oy) - g / 2, S += p - (p * u + v * a), x += v - (p * f + v * l)), y ? (p = m / 2, v = g / 2, E += ", Dx=" + (p - (p * u + v * a) + S) + ", Dy=" + (v - (p * f + v * l) + x) + ")") : E += ", sizingMethod='auto expand')", c.filter = -1 !== t.indexOf("DXImageTransform.Microsoft.Matrix(") ? t.replace(O, E) : E + " " + t, (0 === e || 1 === e) && 1 === u && 0 === a && 0 === f && 1 === l && (y && -1 === E.indexOf("Dx=0, Dy=0") || w.test(t) && 100 !== parseFloat(RegExp.$1) || -1 === t.indexOf(t.indexOf("Alpha")) && c.removeAttribute("filter")), !y) {
                    var T, N, C, k = 8 > d ? 1 : -1;
                    for (p = r.ieOffsetX || 0, v = r.ieOffsetY || 0, r.ieOffsetX = Math.round((m - ((0 > u ? -u : u) * m + (0 > a ? -a : a) * g)) / 2 + S), r.ieOffsetY = Math.round((g - ((0 > l ? -l : l) * g + (0 > f ? -f : f) * m)) / 2 + x), dt = 0; 4 > dt; dt++)
                        N = Z[dt], T = h[N], n = -1 !== T.indexOf("px") ? parseFloat(T) : J(this.t, N, parseFloat(T), T.replace(b, "")) || 0, C = n !== r[N] ? 2 > dt ? -r.ieOffsetX : -r.ieOffsetY : 2 > dt ? p - r.ieOffsetX : v - r.ieOffsetY, c[N] = (r[N] = Math.round(n - C * (0 === dt || 2 === dt ? 1 : k))) + "px"
                }
            }
        }, At = F.set3DTransformRatio = function(e) {
            var t, n, r, i, s, o, u, a, f, l, c, p, d, v, m, g, y, b, w, E, S, x, T, N = this.data, C = this.t.style, k = N.rotation * _, L = N.scaleX, A = N.scaleY, O = N.scaleZ, M = N.x, D = N.y, P = N.z, H = N.perspective;
            if (!(1 !== e && 0 !== e || "auto" !== N.force3D || N.rotationY || N.rotationX || 1 !== O || H || P))
                return Ot.call(this, e), void 0;
            if (h) {
                var B = 1e-4;
                B > L && L > -B && (L = O = 2e-5), B > A && A > -B && (A = O = 2e-5), !H || N.z || N.rotationX || N.rotationY || (H = 0)
            }
            if (k || N.skewX)
                b = Math.cos(k), w = Math.sin(k), t = b, s = w, N.skewX && (k -= N.skewX * _, b = Math.cos(k), w = Math.sin(k), "simple" === N.skewType && (E = Math.tan(N.skewX * _), E = Math.sqrt(1 + E * E), b *= E, w *= E)), n = -w, o = b;
            else {
                if (!(N.rotationY || N.rotationX || 1 !== O || H || N.svg))
                    return C[bt] = (N.xPercent || N.yPercent ? "translate(" + N.xPercent + "%," + N.yPercent + "%) translate3d(" : "translate3d(") + M + "px," + D + "px," + P + "px)" + (1 !== L || 1 !== A ? " scale(" + L + "," + A + ")" : ""), void 0;
                t = o = 1, n = s = 0
            }
            c = 1, r = i = u = a = f = l = p = d = v = 0, m = H ? -1 / H : 0, g = N.zOrigin, y = 1e5, k = N.rotationY * _, k && (b = Math.cos(k), w = Math.sin(k), f = c * -w, d = m * -w, r = t * w, u = s * w, c *= b, m *= b, t *= b, s *= b), k = N.rotationX * _, k && (b = Math.cos(k), w = Math.sin(k), E = n * b + r * w, S = o * b + u * w, x = l * b + c * w, T = v * b + m * w, r = n * -w + r * b, u = o * -w + u * b, c = l * -w + c * b, m = v * -w + m * b, n = E, o = S, l = x, v = T), 1 !== O && (r *= O, u *= O, c *= O, m *= O), 1 !== A && (n *= A, o *= A, l *= A, v *= A), 1 !== L && (t *= L, s *= L, f *= L, d *= L), g && (p -= g, i = r * p, a = u * p, p = c * p + g), N.svg && (i += N.xOrigin - (N.xOrigin * t + N.yOrigin * n), a += N.yOrigin - (N.xOrigin * s + N.yOrigin * o)), i = (E = (i += M) - (i |= 0)) ? (0 | E * y + (0 > E ? -0.5 : .5)) / y + i : i, a = (E = (a += D) - (a |= 0)) ? (0 | E * y + (0 > E ? -0.5 : .5)) / y + a : a, p = (E = (p += P) - (p |= 0)) ? (0 | E * y + (0 > E ? -0.5 : .5)) / y + p : p, C[bt] = (N.xPercent || N.yPercent ? "translate(" + N.xPercent + "%," + N.yPercent + "%) matrix3d(" : "matrix3d(") + [(0 | t * y) / y, (0 | s * y) / y, (0 | f * y) / y, (0 | d * y) / y, (0 | n * y) / y, (0 | o * y) / y, (0 | l * y) / y, (0 | v * y) / y, (0 | r * y) / y, (0 | u * y) / y, (0 | c * y) / y, (0 | m * y) / y, i, a, p, H ? 1 + -p / H : 1].join(",") + ")"
        }, Ot = F.set2DTransformRatio = function(e) {
            var t, n, r, i, s, o, u, a, f, l, c, h = this.data, p = this.t, d = p.style, v = h.x, m = h.y;
            return !(h.rotationX || h.rotationY || h.z || h.force3D === !0 || "auto" === h.force3D && 1 !== e && 0 !== e) || h.svg && Nt || !St ? (i = h.scaleX, s = h.scaleY, h.rotation || h.skewX || h.svg ? (t = h.rotation * _, n = t - h.skewX * _, r = 1e5, o = Math.cos(t) * i, u = Math.sin(t) * i, a = Math.sin(n) * -s, f = Math.cos(n) * s, h.svg && (v += h.xOrigin - (h.xOrigin * o + h.yOrigin * a), m += h.yOrigin - (h.xOrigin * u + h.yOrigin * f), c = 1e-6, c > v && v > -c && (v = 0), c > m && m > -c && (m = 0)), l = (0 | o * r) / r + "," + (0 | u * r) / r + "," + (0 | a * r) / r + "," + (0 | f * r) / r + "," + v + "," + m + ")", h.svg && Nt ? p.setAttribute("transform", "matrix(" + l) : d[bt] = (h.xPercent || h.yPercent ? "translate(" + h.xPercent + "%," + h.yPercent + "%) matrix(" : "matrix(") + l) : d[bt] = (h.xPercent || h.yPercent ? "translate(" + h.xPercent + "%," + h.yPercent + "%) matrix(" : "matrix(") + i + ",0,0," + s + "," + v + "," + m + ")", void 0) : (this.setRatio = At, At.call(this, e), void 0)
        };
        mt("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent", {parser: function(e, t, n, r, s, u, a) {
                if (r._transform)
                    return s;
                var f, l, c, h, p, d, v, m = r._transform = kt(e, i, !0, a.parseTransform), g = e.style, y = 1e-6, b = yt.length, w = a, E = {};
                if ("string" == typeof w.transform && bt)
                    c = B.style, c[bt] = w.transform, c.display = "block", c.position = "absolute", H.body.appendChild(B), f = kt(B, null, !1), H.body.removeChild(B);
                else if ("object" == typeof w) {
                    if (f = {scaleX: rt(null != w.scaleX ? w.scaleX : w.scale, m.scaleX),scaleY: rt(null != w.scaleY ? w.scaleY : w.scale, m.scaleY),scaleZ: rt(w.scaleZ, m.scaleZ),x: rt(w.x, m.x),y: rt(w.y, m.y),z: rt(w.z, m.z),xPercent: rt(w.xPercent, m.xPercent),yPercent: rt(w.yPercent, m.yPercent),perspective: rt(w.transformPerspective, m.perspective)}, v = w.directionalRotation, null != v)
                        if ("object" == typeof v)
                            for (c in v)
                                w[c] = v[c];
                        else
                            w.rotation = v;
                    "string" == typeof w.x && -1 !== w.x.indexOf("%") && (f.x = 0, f.xPercent = rt(w.x, m.xPercent)), "string" == typeof w.y && -1 !== w.y.indexOf("%") && (f.y = 0, f.yPercent = rt(w.y, m.yPercent)), f.rotation = it("rotation" in w ? w.rotation : "shortRotation" in w ? w.shortRotation + "_short" : "rotationZ" in w ? w.rotationZ : m.rotation, m.rotation, "rotation", E), St && (f.rotationX = it("rotationX" in w ? w.rotationX : "shortRotationX" in w ? w.shortRotationX + "_short" : m.rotationX || 0, m.rotationX, "rotationX", E), f.rotationY = it("rotationY" in w ? w.rotationY : "shortRotationY" in w ? w.shortRotationY + "_short" : m.rotationY || 0, m.rotationY, "rotationY", E)), f.skewX = null == w.skewX ? m.skewX : it(w.skewX, m.skewX), f.skewY = null == w.skewY ? m.skewY : it(w.skewY, m.skewY), (l = f.skewY - m.skewY) && (f.skewX += l, f.rotation += l)
                }
                for (St && null != w.force3D && (m.force3D = w.force3D, d = !0), m.skewType = w.skewType || m.skewType || o.defaultSkewType, p = m.force3D || m.z || m.rotationX || m.rotationY || f.z || f.rotationX || f.rotationY || f.perspective, p || null == w.scale || (f.scaleZ = 1); --b > -1; )
                    n = yt[b], h = f[n] - m[n], (h > y || -y > h || null != w[n] || null != P[n]) && (d = !0, s = new ht(m, n, m[n], h, s), n in E && (s.e = E[n]), s.xs0 = 0, s.plugin = u, r._overwriteProps.push(s.n));
                return h = w.transformOrigin, h && m.svg ? (Ct(e, h, f), s = new ht(m, "xOrigin", m.xOrigin, f.xOrigin - m.xOrigin, s, -1, "transformOrigin"), s.b = m.xOrigin, s.e = s.xs0 = f.xOrigin, s = new ht(m, "yOrigin", m.yOrigin, f.yOrigin - m.yOrigin, s, -1, "transformOrigin"), s.b = m.yOrigin, s.e = s.xs0 = f.yOrigin, _t(g, Et)) : (h || St && p && m.zOrigin) && (bt ? (d = !0, n = Et, h = (h || $(e, n, i, !1, "50% 50%")) + "", s = new ht(g, n, 0, 0, s, -1, "transformOrigin"), s.b = g[n], s.plugin = u, St ? (c = m.zOrigin, h = h.split(" "), m.zOrigin = (h.length > 2 && (0 === c || "0px" !== h[2]) ? parseFloat(h[2]) : c) || 0, s.xs0 = s.e = h[0] + " " + (h[1] || "50%") + " 0px", s = new ht(m, "zOrigin", 0, 0, s, -1, s.n), s.b = c, s.xs0 = s.e = m.zOrigin) : s.xs0 = s.e = h) : tt(h + "", m)), d && (r._transformType = m.svg && Nt || !p && 3 !== this._transformType ? 2 : 3), s
            },prefix: !0}), mt("boxShadow", {defaultValue: "0px 0px 0px 0px #999",prefix: !0,color: !0,multi: !0,keyword: "inset"}), mt("borderRadius", {defaultValue: "0px",parser: function(e, t, n, s, o) {
                t = this.format(t);
                var u, a, f, l, c, h, p, d, v, m, g, y, b, w, E, S, x = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"], T = e.style;
                for (v = parseFloat(e.offsetWidth), m = parseFloat(e.offsetHeight), u = t.split(" "), a = 0; x.length > a; a++)
                    this.p.indexOf("border") && (x[a] = X(x[a])), c = l = $(e, x[a], i, !1, "0px"), -1 !== c.indexOf(" ") && (l = c.split(" "), c = l[0], l = l[1]), h = f = u[a], p = parseFloat(c), y = c.substr((p + "").length), b = "=" === h.charAt(1), b ? (d = parseInt(h.charAt(0) + "1", 10), h = h.substr(2), d *= parseFloat(h), g = h.substr((d + "").length - (0 > d ? 1 : 0)) || "") : (d = parseFloat(h), g = h.substr((d + "").length)), "" === g && (g = r[n] || y), g !== y && (w = J(e, "borderLeft", p, y), E = J(e, "borderTop", p, y), "%" === g ? (c = 100 * (w / v) + "%", l = 100 * (E / m) + "%") : "em" === g ? (S = J(e, "borderLeft", 1, "em"), c = w / S + "em", l = E / S + "em") : (c = w + "px", l = E + "px"), b && (h = parseFloat(c) + d + g, f = parseFloat(l) + d + g)), o = pt(T, x[a], c + " " + l, h + " " + f, !1, "0px", o);
                return o
            },prefix: !0,formatter: ft("0px 0px 0px 0px", !1, !0)}), mt("backgroundPosition", {defaultValue: "0 0",parser: function(e, t, n, r, s, o) {
                var u, a, f, l, c, h, p = "background-position", v = i || V(e, null), m = this.format((v ? d ? v.getPropertyValue(p + "-x") + " " + v.getPropertyValue(p + "-y") : v.getPropertyValue(p) : e.currentStyle.backgroundPositionX + " " + e.currentStyle.backgroundPositionY) || "0 0"), g = this.format(t);
                if (-1 !== m.indexOf("%") != (-1 !== g.indexOf("%")) && (h = $(e, "backgroundImage").replace(C, ""), h && "none" !== h)) {
                    for (u = m.split(" "), a = g.split(" "), j.setAttribute("src", h), f = 2; --f > -1; )
                        m = u[f], l = -1 !== m.indexOf("%"), l !== (-1 !== a[f].indexOf("%")) && (c = 0 === f ? e.offsetWidth - j.width : e.offsetHeight - j.height, u[f] = l ? parseFloat(m) / 100 * c + "px" : 100 * (parseFloat(m) / c) + "%");
                    m = u.join(" ")
                }
                return this.parseComplex(e.style, m, g, s, o)
            },formatter: tt}), mt("backgroundSize", {defaultValue: "0 0",formatter: tt}), mt("perspective", {defaultValue: "0px",prefix: !0}), mt("perspectiveOrigin", {defaultValue: "50% 50%",prefix: !0}), mt("transformStyle", {prefix: !0}), mt("backfaceVisibility", {prefix: !0}), mt("userSelect", {prefix: !0}), mt("margin", {parser: lt("marginTop,marginRight,marginBottom,marginLeft")}), mt("padding", {parser: lt("paddingTop,paddingRight,paddingBottom,paddingLeft")}), mt("clip", {defaultValue: "rect(0px,0px,0px,0px)",parser: function(e, t, n, r, s, o) {
                var u, a, f;
                return 9 > d ? (a = e.currentStyle, f = 8 > d ? " " : ",", u = "rect(" + a.clipTop + f + a.clipRight + f + a.clipBottom + f + a.clipLeft + ")", t = this.format(t).split(",").join(f)) : (u = this.format($(e, this.p, i, !1, this.dflt)), t = this.format(t)), this.parseComplex(e.style, u, t, s, o)
            }}), mt("textShadow", {defaultValue: "0px 0px 0px #999",color: !0,multi: !0}), mt("autoRound,strictUnits", {parser: function(e, t, n, r, i) {
                return i
            }}), mt("border", {defaultValue: "0px solid #000",parser: function(e, t, n, r, s, o) {
                return this.parseComplex(e.style, this.format($(e, "borderTopWidth", i, !1, "0px") + " " + $(e, "borderTopStyle", i, !1, "solid") + " " + $(e, "borderTopColor", i, !1, "#000")), this.format(t), s, o)
            },color: !0,formatter: function(e) {
                var t = e.split(" ");
                return t[0] + " " + (t[1] || "solid") + " " + (e.match(at) || ["#000"])[0]
            }}), mt("borderWidth", {parser: lt("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}), mt("float,cssFloat,styleFloat", {parser: function(e, t, n, r, i) {
                var s = e.style, o = "cssFloat" in s ? "cssFloat" : "styleFloat";
                return new ht(s, o, 0, 0, i, -1, n, !1, 0, s[o], t)
            }});
        var Mt = function(e) {
            var t, n = this.t, r = n.filter || $(this.data, "filter") || "", i = 0 | this.s + this.c * e;
            100 === i && (-1 === r.indexOf("atrix(") && -1 === r.indexOf("radient(") && -1 === r.indexOf("oader(") ? (n.removeAttribute("filter"), t = !$(this.data, "filter")) : (n.filter = r.replace(S, ""), t = !0)), t || (this.xn1 && (n.filter = r = r || "alpha(opacity=" + i + ")"), -1 === r.indexOf("pacity") ? 0 === i && this.xn1 || (n.filter = r + " alpha(opacity=" + i + ")") : n.filter = r.replace(w, "opacity=" + i))
        };
        mt("opacity,alpha,autoAlpha", {defaultValue: "1",parser: function(e, t, n, r, s, o) {
                var u = parseFloat($(e, "opacity", i, !1, "1")), a = e.style, f = "autoAlpha" === n;
                return "string" == typeof t && "=" === t.charAt(1) && (t = ("-" === t.charAt(0) ? -1 : 1) * parseFloat(t.substr(2)) + u), f && 1 === u && "hidden" === $(e, "visibility", i) && 0 !== t && (u = 0), q ? s = new ht(a, "opacity", u, t - u, s) : (s = new ht(a, "opacity", 100 * u, 100 * (t - u), s), s.xn1 = f ? 1 : 0, a.zoom = 1, s.type = 2, s.b = "alpha(opacity=" + s.s + ")", s.e = "alpha(opacity=" + (s.s + s.c) + ")", s.data = e, s.plugin = o, s.setRatio = Mt), f && (s = new ht(a, "visibility", 0, 0, s, -1, null, !1, 0, 0 !== u ? "inherit" : "hidden", 0 === t ? "hidden" : "inherit"), s.xs0 = "inherit", r._overwriteProps.push(s.n), r._overwriteProps.push(n)), s
            }});
        var _t = function(e, t) {
            t && (e.removeProperty ? ("ms" === t.substr(0, 2) && (t = "M" + t.substr(1)), e.removeProperty(t.replace(T, "-$1").toLowerCase())) : e.removeAttribute(t))
        }, Dt = function(e) {
            if (this.t._gsClassPT = this, 1 === e || 0 === e) {
                this.t.setAttribute("class", 0 === e ? this.b : this.e);
                for (var t = this.data, n = this.t.style; t; )
                    t.v ? n[t.p] = t.v : _t(n, t.p), t = t._next;
                1 === e && this.t._gsClassPT === this && (this.t._gsClassPT = null)
            } else
                this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e)
        };
        mt("className", {parser: function(e, t, r, s, o, u, a) {
                var f, l, c, h, p, d = e.getAttribute("class") || "", v = e.style.cssText;
                if (o = s._classNamePT = new ht(e, r, 0, 0, o, 2), o.setRatio = Dt, o.pr = -11, n = !0, o.b = d, l = Q(e, i), c = e._gsClassPT) {
                    for (h = {}, p = c.data; p; )
                        h[p.p] = 1, p = p._next;
                    c.setRatio(1)
                }
                return e._gsClassPT = o, o.e = "=" !== t.charAt(1) ? t : d.replace(RegExp("\\s*\\b" + t.substr(2) + "\\b"), "") + ("+" === t.charAt(0) ? " " + t.substr(2) : ""), s._tween._duration && (e.setAttribute("class", o.e), f = G(e, l, Q(e), a, h), e.setAttribute("class", d), o.data = f.firstMPT, e.style.cssText = v, o = o.xfirst = s.parse(e, f.difs, o, u)), o
            }});
        var Pt = function(e) {
            if ((1 === e || 0 === e) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) {
                var t, n, r, i, s = this.t.style, o = u.transform.parse;
                if ("all" === this.e)
                    s.cssText = "", i = !0;
                else
                    for (t = this.e.split(" ").join("").split(","), r = t.length; --r > -1; )
                        n = t[r], u[n] && (u[n].parse === o ? i = !0 : n = "transformOrigin" === n ? Et : u[n].p), _t(s, n);
                i && (_t(s, bt), this.t._gsTransform && delete this.t._gsTransform)
            }
        };
        for (mt("clearProps", {parser: function(e, t, r, i, s) {
                return s = new ht(e, r, 0, 0, s, 2), s.setRatio = Pt, s.e = t, s.pr = -10, s.data = i._tween, n = !0, s
            }}), a = "bezier,throwProps,physicsProps,physics2D".split(","), dt = a.length; dt--; )
            gt(a[dt]);
        a = o.prototype, a._firstPT = null, a._onInitTween = function(e, t, u) {
            if (!e.nodeType)
                return !1;
            this._target = e, this._tween = u, this._vars = t, f = t.autoRound, n = !1, r = t.suffixMap || o.suffixMap, i = V(e, ""), s = this._overwriteProps;
            var a, h, d, v, m, g, y, b, w, S = e.style;
            if (l && "" === S.zIndex && (a = $(e, "zIndex", i), ("auto" === a || "" === a) && this._addLazySet(S, "zIndex", 0)), "string" == typeof t && (v = S.cssText, a = Q(e, i), S.cssText = v + ";" + t, a = G(e, a, Q(e)).difs, !q && E.test(t) && (a.opacity = parseFloat(RegExp.$1)), t = a, S.cssText = v), this._firstPT = h = this.parse(e, t, null), this._transformType) {
                for (w = 3 === this._transformType, bt ? c && (l = !0, "" === S.zIndex && (y = $(e, "zIndex", i), ("auto" === y || "" === y) && this._addLazySet(S, "zIndex", 0)), p && this._addLazySet(S, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (w ? "visible" : "hidden"))) : S.zoom = 1, d = h; d && d._next; )
                    d = d._next;
                b = new ht(e, "transform", 0, 0, null, 2), this._linkCSSP(b, null, d), b.setRatio = w && St ? At : bt ? Ot : Lt, b.data = this._transform || kt(e, i, !0), s.pop()
            }
            if (n) {
                for (; h; ) {
                    for (g = h._next, d = v; d && d.pr > h.pr; )
                        d = d._next;
                    (h._prev = d ? d._prev : m) ? h._prev._next = h : v = h, (h._next = d) ? d._prev = h : m = h, h = g
                }
                this._firstPT = v
            }
            return !0
        }, a.parse = function(e, t, n, s) {
            var o, a, l, c, h, p, d, v, m, g, y = e.style;
            for (o in t)
                p = t[o], a = u[o], a ? n = a.parse(e, p, o, this, n, s, t) : (h = $(e, o, i) + "", m = "string" == typeof p, "color" === o || "fill" === o || "stroke" === o || -1 !== o.indexOf("Color") || m && x.test(p) ? (m || (p = ut(p), p = (p.length > 3 ? "rgba(" : "rgb(") + p.join(",") + ")"), n = pt(y, o, h, p, !0, "transparent", n, 0, s)) : !m || -1 === p.indexOf(" ") && -1 === p.indexOf(",") ? (l = parseFloat(h), d = l || 0 === l ? h.substr((l + "").length) : "", ("" === h || "auto" === h) && ("width" === o || "height" === o ? (l = et(e, o, i), d = "px") : "left" === o || "top" === o ? (l = K(e, o, i), d = "px") : (l = "opacity" !== o ? 0 : 1, d = "")), g = m && "=" === p.charAt(1), g ? (c = parseInt(p.charAt(0) + "1", 10), p = p.substr(2), c *= parseFloat(p), v = p.replace(b, "")) : (c = parseFloat(p), v = m ? p.substr((c + "").length) || "" : ""), "" === v && (v = o in r ? r[o] : d), p = c || 0 === c ? (g ? c + l : c) + v : t[o], d !== v && "" !== v && (c || 0 === c) && l && (l = J(e, o, l, d), "%" === v ? (l /= J(e, o, 100, "%") / 100, t.strictUnits !== !0 && (h = l + "%")) : "em" === v ? l /= J(e, o, 1, "em") : "px" !== v && (c = J(e, o, c, v), v = "px"), g && (c || 0 === c) && (p = c + l + v)), g && (c += l), !l && 0 !== l || !c && 0 !== c ? void 0 !== y[o] && (p || "NaN" != p + "" && null != p) ? (n = new ht(y, o, c || l || 0, 0, n, -1, o, !1, 0, h, p), n.xs0 = "none" !== p || "display" !== o && -1 === o.indexOf("Style") ? p : h) : U("invalid " + o + " tween value: " + t[o]) : (n = new ht(y, o, l, c - l, n, 0, o, f !== !1 && ("px" === v || "zIndex" === o), 0, h, p), n.xs0 = v)) : n = pt(y, o, h, p, !0, null, n, 0, s)), s && n && !n.plugin && (n.plugin = s);
            return n
        }, a.setRatio = function(e) {
            var t, n, r, i = this._firstPT, s = 1e-6;
            if (1 !== e || this._tween._time !== this._tween._duration && 0 !== this._tween._time)
                if (e || this._tween._time !== this._tween._duration && 0 !== this._tween._time || this._tween._rawPrevTime === -0.000001)
                    for (; i; ) {
                        if (t = i.c * e + i.s, i.r ? t = Math.round(t) : s > t && t > -s && (t = 0), i.type)
                            if (1 === i.type)
                                if (r = i.l, 2 === r)
                                    i.t[i.p] = i.xs0 + t + i.xs1 + i.xn1 + i.xs2;
                                else if (3 === r)
                                    i.t[i.p] = i.xs0 + t + i.xs1 + i.xn1 + i.xs2 + i.xn2 + i.xs3;
                                else if (4 === r)
                                    i.t[i.p] = i.xs0 + t + i.xs1 + i.xn1 + i.xs2 + i.xn2 + i.xs3 + i.xn3 + i.xs4;
                                else if (5 === r)
                                    i.t[i.p] = i.xs0 + t + i.xs1 + i.xn1 + i.xs2 + i.xn2 + i.xs3 + i.xn3 + i.xs4 + i.xn4 + i.xs5;
                                else {
                                    for (n = i.xs0 + t + i.xs1, r = 1; i.l > r; r++)
                                        n += i["xn" + r] + i["xs" + (r + 1)];
                                    i.t[i.p] = n
                                }
                            else
                                -1 === i.type ? i.t[i.p] = i.xs0 : i.setRatio && i.setRatio(e);
                        else
                            i.t[i.p] = t + i.xs0;
                        i = i._next
                    }
                else
                    for (; i; )
                        2 !== i.type ? i.t[i.p] = i.b : i.setRatio(e), i = i._next;
            else
                for (; i; )
                    2 !== i.type ? i.t[i.p] = i.e : i.setRatio(e), i = i._next
        }, a._enableTransforms = function(e) {
            this._transform = this._transform || kt(this._target, i, !0), this._transformType = this._transform.svg && Nt || !e && 3 !== this._transformType ? 2 : 3
        };
        var Ht = function() {
            this.t[this.p] = this.e, this.data._linkCSSP(this, this._next, null, !0)
        };
        a._addLazySet = function(e, t, n) {
            var r = this._firstPT = new ht(e, t, 0, 0, this._firstPT, 2);
            r.e = n, r.setRatio = Ht, r.data = this
        }, a._linkCSSP = function(e, t, n, r) {
            return e && (t && (t._prev = e), e._next && (e._next._prev = e._prev), e._prev ? e._prev._next = e._next : this._firstPT === e && (this._firstPT = e._next, r = !0), n ? n._next = e : r || null !== this._firstPT || (this._firstPT = e), e._next = t, e._prev = n), e
        }, a._kill = function(t) {
            var n, r, i, s = t;
            if (t.autoAlpha || t.alpha) {
                s = {};
                for (r in t)
                    s[r] = t[r];
                s.opacity = 1, s.autoAlpha && (s.visibility = 1)
            }
            return t.className && (n = this._classNamePT) && (i = n.xfirst, i && i._prev ? this._linkCSSP(i._prev, n._next, i._prev._prev) : i === this._firstPT && (this._firstPT = n._next), n._next && this._linkCSSP(n._next, n._next._next, i._prev), this._classNamePT = null), e.prototype._kill.call(this, s)
        };
        var Bt = function(e, t, n) {
            var r, i, s, o;
            if (e.slice)
                for (i = e.length; --i > -1; )
                    Bt(e[i], t, n);
            else
                for (r = e.childNodes, i = r.length; --i > -1; )
                    s = r[i], o = s.type, s.style && (t.push(Q(s)), n && n.push(s)), 1 !== o && 9 !== o && 11 !== o || !s.childNodes.length || Bt(s, t, n)
        };
        return o.cascadeTo = function(e, n, r) {
            var i, s, o, u = t.to(e, n, r), a = [u], f = [], l = [], c = [], h = t._internals.reservedProps;
            for (e = u._targets || u.target, Bt(e, f, c), u.render(n, !0), Bt(e, l), u.render(0, !0), u._enabled(!0), i = c.length; --i > -1; )
                if (s = G(c[i], f[i], l[i]), s.firstMPT) {
                    s = s.difs;
                    for (o in r)
                        h[o] && (s[o] = r[o]);
                    a.push(t.to(c[i], n, s))
                }
            return a
        }, e.activate([o]), o
    }, !0), function() {
        var e = _gsScope._gsDefine.plugin({propName: "roundProps",priority: -1,API: 2,init: function(e, t, n) {
                return this._tween = n, !0
            }}), t = e.prototype;
        t._onInitAllProps = function() {
            for (var e, t, n, r = this._tween, i = r.vars.roundProps instanceof Array ? r.vars.roundProps : r.vars.roundProps.split(","), s = i.length, o = {}, u = r._propLookup.roundProps; --s > -1; )
                o[i[s]] = 1;
            for (s = i.length; --s > -1; )
                for (e = i[s], t = r._firstPT; t; )
                    n = t._next, t.pg ? t.t._roundProps(o, !0) : t.n === e && (this._add(t.t, e, t.s, t.c), n && (n._prev = t._prev), t._prev ? t._prev._next = n : r._firstPT === t && (r._firstPT = n), t._next = t._prev = null, r._propLookup[e] = u), t = n;
            return !1
        }, t._add = function(e, t, n, r) {
            this._addTween(e, t, n, n + r, t, !0), this._overwriteProps.push(t)
        }
    }(), _gsScope._gsDefine.plugin({propName: "attr",API: 2,version: "0.3.3",init: function(e, t) {
            var n, r, i;
            if ("function" != typeof e.setAttribute)
                return !1;
            this._target = e, this._proxy = {}, this._start = {}, this._end = {};
            for (n in t)
                this._start[n] = this._proxy[n] = r = e.getAttribute(n), i = this._addTween(this._proxy, n, parseFloat(r), t[n], n), this._end[n] = i ? i.s + i.c : t[n], this._overwriteProps.push(n);
            return !0
        },set: function(e) {
            this._super.setRatio.call(this, e);
            for (var t, n = this._overwriteProps, r = n.length, i = 1 === e ? this._end : e ? this._proxy : this._start; --r > -1; )
                t = n[r], this._target.setAttribute(t, i[t] + "")
        }}), _gsScope._gsDefine.plugin({propName: "directionalRotation",version: "0.2.1",API: 2,init: function(e, t) {
            "object" != typeof t && (t = {rotation: t}), this.finals = {};
            var n, r, i, s, o, u, a = t.useRadians === !0 ? 2 * Math.PI : 360, f = 1e-6;
            for (n in t)
                "useRadians" !== n && (u = (t[n] + "").split("_"), r = u[0], i = parseFloat("function" != typeof e[n] ? e[n] : e[n.indexOf("set") || "function" != typeof e["get" + n.substr(3)] ? n : "get" + n.substr(3)]()), s = this.finals[n] = "string" == typeof r && "=" === r.charAt(1) ? i + parseInt(r.charAt(0) + "1", 10) * Number(r.substr(2)) : Number(r) || 0, o = s - i, u.length && (r = u.join("_"), -1 !== r.indexOf("short") && (o %= a, o !== o % (a / 2) && (o = 0 > o ? o + a : o - a)), -1 !== r.indexOf("_cw") && 0 > o ? o = (o + 9999999999 * a) % a - (0 | o / a) * a : -1 !== r.indexOf("ccw") && o > 0 && (o = (o - 9999999999 * a) % a - (0 | o / a) * a)), (o > f || -f > o) && (this._addTween(e, n, i, i + o, n), this._overwriteProps.push(n)));
            return !0
        },set: function(e) {
            var t;
            if (1 !== e)
                this._super.setRatio.call(this, e);
            else
                for (t = this._firstPT; t; )
                    t.f ? t.t[t.p](this.finals[t.p]) : t.t[t.p] = this.finals[t.p], t = t._next
        }})._autoCSS = !0, _gsScope._gsDefine("easing.Back", ["easing.Ease"], function(e) {
        var t, n, r, i = _gsScope.GreenSockGlobals || _gsScope, s = i.com.greensock, o = 2 * Math.PI, u = Math.PI / 2, a = s._class, f = function(t, n) {
            var r = a("easing." + t, function() {
            }, !0), i = r.prototype = new e;
            return i.constructor = r, i.getRatio = n, r
        }, l = e.register || function() {
        }, c = function(e, t, n, r) {
            var i = a("easing." + e, {easeOut: new t,easeIn: new n,easeInOut: new r}, !0);
            return l(i, e), i
        }, h = function(e, t, n) {
            this.t = e, this.v = t, n && (this.next = n, n.prev = this, this.c = n.v - t, this.gap = n.t - e)
        }, p = function(t, n) {
            var r = a("easing." + t, function(e) {
                this._p1 = e || 0 === e ? e : 1.70158, this._p2 = 1.525 * this._p1
            }, !0), i = r.prototype = new e;
            return i.constructor = r, i.getRatio = n, i.config = function(e) {
                return new r(e)
            }, r
        }, d = c("Back", p("BackOut", function(e) {
            return (e -= 1) * e * ((this._p1 + 1) * e + this._p1) + 1
        }), p("BackIn", function(e) {
            return e * e * ((this._p1 + 1) * e - this._p1)
        }), p("BackInOut", function(e) {
            return 1 > (e *= 2) ? .5 * e * e * ((this._p2 + 1) * e - this._p2) : .5 * ((e -= 2) * e * ((this._p2 + 1) * e + this._p2) + 2)
        })), v = a("easing.SlowMo", function(e, t, n) {
            t = t || 0 === t ? t : .7, null == e ? e = .7 : e > 1 && (e = 1), this._p = 1 !== e ? t : 0, this._p1 = (1 - e) / 2, this._p2 = e, this._p3 = this._p1 + this._p2, this._calcEnd = n === !0
        }, !0), m = v.prototype = new e;
        return m.constructor = v, m.getRatio = function(e) {
            var t = e + (.5 - e) * this._p;
            return this._p1 > e ? this._calcEnd ? 1 - (e = 1 - e / this._p1) * e : t - (e = 1 - e / this._p1) * e * e * e * t : e > this._p3 ? this._calcEnd ? 1 - (e = (e - this._p3) / this._p1) * e : t + (e - t) * (e = (e - this._p3) / this._p1) * e * e * e : this._calcEnd ? 1 : t
        }, v.ease = new v(.7, .7), m.config = v.config = function(e, t, n) {
            return new v(e, t, n)
        }, t = a("easing.SteppedEase", function(e) {
            e = e || 1, this._p1 = 1 / e, this._p2 = e + 1
        }, !0), m = t.prototype = new e, m.constructor = t, m.getRatio = function(e) {
            return 0 > e ? e = 0 : e >= 1 && (e = .999999999), (this._p2 * e >> 0) * this._p1
        }, m.config = t.config = function(e) {
            return new t(e)
        }, n = a("easing.RoughEase", function(t) {
            t = t || {};
            for (var n, r, i, s, o, u, a = t.taper || "none", f = [], l = 0, c = 0 | (t.points || 20), p = c, d = t.randomize !== !1, v = t.clamp === !0, m = t.template instanceof e ? t.template : null, g = "number" == typeof t.strength ? .4 * t.strength : .4; --p > -1; )
                n = d ? Math.random() : 1 / c * p, r = m ? m.getRatio(n) : n, "none" === a ? i = g : "out" === a ? (s = 1 - n, i = s * s * g) : "in" === a ? i = n * n * g : .5 > n ? (s = 2 * n, i = .5 * s * s * g) : (s = 2 * (1 - n), i = .5 * s * s * g), d ? r += Math.random() * i - .5 * i : p % 2 ? r += .5 * i : r -= .5 * i, v && (r > 1 ? r = 1 : 0 > r && (r = 0)), f[l++] = {x: n,y: r};
            for (f.sort(function(e, t) {
                return e.x - t.x
            }), u = new h(1, 1, null), p = c; --p > -1; )
                o = f[p], u = new h(o.x, o.y, u);
            this._prev = new h(0, 0, 0 !== u.t ? u : u.next)
        }, !0), m = n.prototype = new e, m.constructor = n, m.getRatio = function(e) {
            var t = this._prev;
            if (e > t.t) {
                for (; t.next && e >= t.t; )
                    t = t.next;
                t = t.prev
            } else
                for (; t.prev && t.t >= e; )
                    t = t.prev;
            return this._prev = t, t.v + (e - t.t) / t.gap * t.c
        }, m.config = function(e) {
            return new n(e)
        }, n.ease = new n, c("Bounce", f("BounceOut", function(e) {
            return 1 / 2.75 > e ? 7.5625 * e * e : 2 / 2.75 > e ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : 2.5 / 2.75 > e ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
        }), f("BounceIn", function(e) {
            return 1 / 2.75 > (e = 1 - e) ? 1 - 7.5625 * e * e : 2 / 2.75 > e ? 1 - (7.5625 * (e -= 1.5 / 2.75) * e + .75) : 2.5 / 2.75 > e ? 1 - (7.5625 * (e -= 2.25 / 2.75) * e + .9375) : 1 - (7.5625 * (e -= 2.625 / 2.75) * e + .984375)
        }), f("BounceInOut", function(e) {
            var t = .5 > e;
            return e = t ? 1 - 2 * e : 2 * e - 1, e = 1 / 2.75 > e ? 7.5625 * e * e : 2 / 2.75 > e ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : 2.5 / 2.75 > e ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375, t ? .5 * (1 - e) : .5 * e + .5
        })), c("Circ", f("CircOut", function(e) {
            return Math.sqrt(1 - (e -= 1) * e)
        }), f("CircIn", function(e) {
            return -(Math.sqrt(1 - e * e) - 1)
        }), f("CircInOut", function(e) {
            return 1 > (e *= 2) ? -0.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1)
        })), r = function(t, n, r) {
            var i = a("easing." + t, function(e, t) {
                this._p1 = e || 1, this._p2 = t || r, this._p3 = this._p2 / o * (Math.asin(1 / this._p1) || 0)
            }, !0), s = i.prototype = new e;
            return s.constructor = i, s.getRatio = n, s.config = function(e, t) {
                return new i(e, t)
            }, i
        }, c("Elastic", r("ElasticOut", function(e) {
            return this._p1 * Math.pow(2, -10 * e) * Math.sin((e - this._p3) * o / this._p2) + 1
        }, .3), r("ElasticIn", function(e) {
            return -(this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * o / this._p2))
        }, .3), r("ElasticInOut", function(e) {
            return 1 > (e *= 2) ? -0.5 * this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * o / this._p2) : .5 * this._p1 * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - this._p3) * o / this._p2) + 1
        }, .45)), c("Expo", f("ExpoOut", function(e) {
            return 1 - Math.pow(2, -10 * e)
        }), f("ExpoIn", function(e) {
            return Math.pow(2, 10 * (e - 1)) - .001
        }), f("ExpoInOut", function(e) {
            return 1 > (e *= 2) ? .5 * Math.pow(2, 10 * (e - 1)) : .5 * (2 - Math.pow(2, -10 * (e - 1)))
        })), c("Sine", f("SineOut", function(e) {
            return Math.sin(e * u)
        }), f("SineIn", function(e) {
            return -Math.cos(e * u) + 1
        }), f("SineInOut", function(e) {
            return -0.5 * (Math.cos(Math.PI * e) - 1)
        })), a("easing.EaseLookup", {find: function(t) {
                return e.map[t]
            }}, !0), l(i.SlowMo, "SlowMo", "ease,"), l(n, "RoughEase", "ease,"), l(t, "SteppedEase", "ease,"), d
    }, !0)
}), _gsScope._gsDefine && _gsScope._gsQueue.pop()(), function(e, t) {
    var n = e.GreenSockGlobals = e.GreenSockGlobals || e;
    if (!n.TweenLite) {
        var r, i, s, o, u, a = function(e) {
            var t, r = e.split("."), i = n;
            for (t = 0; r.length > t; t++)
                i[r[t]] = i = i[r[t]] || {};
            return i
        }, f = a("com.greensock"), l = 1e-10, c = function(e) {
            var t, n = [], r = e.length;
            for (t = 0; t !== r; n.push(e[t++]))
                ;
            return n
        }, h = function() {
        }, p = function() {
            var e = Object.prototype.toString, t = e.call([]);
            return function(n) {
                return null != n && (n instanceof Array || "object" == typeof n && !!n.push && e.call(n) === t)
            }
        }(), d = {}, v = function(r, i, s, o) {
            this.sc = d[r] ? d[r].sc : [], d[r] = this, this.gsClass = null, this.func = s;
            var u = [];
            this.check = function(f) {
                for (var l, c, h, p, m = i.length, g = m; --m > -1; )
                    (l = d[i[m]] || new v(i[m], [])).gsClass ? (u[m] = l.gsClass, g--) : f && l.sc.push(this);
                if (0 === g && s)
                    for (c = ("com.greensock." + r).split("."), h = c.pop(), p = a(c.join("."))[h] = this.gsClass = s.apply(s, u), o && (n[h] = p, "function" == typeof define && define.amd ? define((e.GreenSockAMDPath ? e.GreenSockAMDPath + "/" : "") + r.split(".").pop(), [], function() {
                        return p
                    }) : r === t && "undefined" != typeof module && module.exports && (module.exports = p)), m = 0; this.sc.length > m; m++)
                        this.sc[m].check()
            }, this.check(!0)
        }, m = e._gsDefine = function(e, t, n, r) {
            return new v(e, t, n, r)
        }, g = f._class = function(e, t, n) {
            return t = t || function() {
            }, m(e, [], function() {
                return t
            }, n), t
        };
        m.globals = n;
        var y = [0, 0, 1, 1], b = [], w = g("easing.Ease", function(e, t, n, r) {
            this._func = e, this._type = n || 0, this._power = r || 0, this._params = t ? y.concat(t) : y
        }, !0), E = w.map = {}, S = w.register = function(e, t, n, r) {
            for (var i, s, o, u, a = t.split(","), l = a.length, c = (n || "easeIn,easeOut,easeInOut").split(","); --l > -1; )
                for (s = a[l], i = r ? g("easing." + s, null, !0) : f.easing[s] || {}, o = c.length; --o > -1; )
                    u = c[o], E[s + "." + u] = E[u + s] = i[u] = e.getRatio ? e : e[u] || new e
        };
        for (s = w.prototype, s._calcEnd = !1, s.getRatio = function(e) {
            if (this._func)
                return this._params[0] = e, this._func.apply(null, this._params);
            var t = this._type, n = this._power, r = 1 === t ? 1 - e : 2 === t ? e : .5 > e ? 2 * e : 2 * (1 - e);
            return 1 === n ? r *= r : 2 === n ? r *= r * r : 3 === n ? r *= r * r * r : 4 === n && (r *= r * r * r * r), 1 === t ? 1 - r : 2 === t ? r : .5 > e ? r / 2 : 1 - r / 2
        }, r = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"], i = r.length; --i > -1; )
            s = r[i] + ",Power" + i, S(new w(null, null, 1, i), s, "easeOut", !0), S(new w(null, null, 2, i), s, "easeIn" + (0 === i ? ",easeNone" : "")), S(new w(null, null, 3, i), s, "easeInOut");
        E.linear = f.easing.Linear.easeIn, E.swing = f.easing.Quad.easeInOut;
        var x = g("events.EventDispatcher", function(e) {
            this._listeners = {}, this._eventTarget = e || this
        });
        s = x.prototype, s.addEventListener = function(e, t, n, r, i) {
            i = i || 0;
            var s, a, f = this._listeners[e], l = 0;
            for (null == f && (this._listeners[e] = f = []), a = f.length; --a > -1; )
                s = f[a], s.c === t && s.s === n ? f.splice(a, 1) : 0 === l && i > s.pr && (l = a + 1);
            f.splice(l, 0, {c: t,s: n,up: r,pr: i}), this !== o || u || o.wake()
        }, s.removeEventListener = function(e, t) {
            var n, r = this._listeners[e];
            if (r)
                for (n = r.length; --n > -1; )
                    if (r[n].c === t)
                        return r.splice(n, 1), void 0
        }, s.dispatchEvent = function(e) {
            var t, n, r, i = this._listeners[e];
            if (i)
                for (t = i.length, n = this._eventTarget; --t > -1; )
                    r = i[t], r && (r.up ? r.c.call(r.s || n, {type: e,target: n}) : r.c.call(r.s || n))
        };
        var T = e.requestAnimationFrame, N = e.cancelAnimationFrame, C = Date.now || function() {
            return (new Date).getTime()
        }, k = C();
        for (r = ["ms", "moz", "webkit", "o"], i = r.length; --i > -1 && !T; )
            T = e[r[i] + "RequestAnimationFrame"], N = e[r[i] + "CancelAnimationFrame"] || e[r[i] + "CancelRequestAnimationFrame"];
        g("Ticker", function(e, t) {
            var n, r, i, s, a, f = this, c = C(), p = t !== !1 && T, d = 500, v = 33, m = function(e) {
                var t, o, u = C() - k;
                u > d && (c += u - v), k += u, f.time = (k - c) / 1e3, t = f.time - a, (!n || t > 0 || e === !0) && (f.frame++, a += t + (t >= s ? .004 : s - t), o = !0), e !== !0 && (i = r(m)), o && f.dispatchEvent("tick")
            };
            x.call(f), f.time = f.frame = 0, f.tick = function() {
                m(!0)
            }, f.lagSmoothing = function(e, t) {
                d = e || 1 / l, v = Math.min(t, d, 0)
            }, f.sleep = function() {
                null != i && (p && N ? N(i) : clearTimeout(i), r = h, i = null, f === o && (u = !1))
            }, f.wake = function() {
                null !== i ? f.sleep() : f.frame > 10 && (k = C() - d + 5), r = 0 === n ? h : p && T ? T : function(e) {
                    return setTimeout(e, 0 | 1e3 * (a - f.time) + 1)
                }, f === o && (u = !0), m(2)
            }, f.fps = function(e) {
                return arguments.length ? (n = e, s = 1 / (n || 60), a = this.time + s, f.wake(), void 0) : n
            }, f.useRAF = function(e) {
                return arguments.length ? (f.sleep(), p = e, f.fps(n), void 0) : p
            }, f.fps(e), setTimeout(function() {
                p && (!i || 5 > f.frame) && f.useRAF(!1)
            }, 1500)
        }), s = f.Ticker.prototype = new f.events.EventDispatcher, s.constructor = f.Ticker;
        var L = g("core.Animation", function(e, t) {
            if (this.vars = t = t || {}, this._duration = this._totalDuration = e || 0, this._delay = Number(t.delay) || 0, this._timeScale = 1, this._active = t.immediateRender === !0, this.data = t.data, this._reversed = t.reversed === !0, z) {
                u || o.wake();
                var n = this.vars.useFrames ? U : z;
                n.add(this, n._time), this.vars.paused && this.paused(!0)
            }
        });
        o = L.ticker = new f.Ticker, s = L.prototype, s._dirty = s._gc = s._initted = s._paused = !1, s._totalTime = s._time = 0, s._rawPrevTime = -1, s._next = s._last = s._onUpdate = s._timeline = s.timeline = null, s._paused = !1;
        var A = function() {
            u && C() - k > 2e3 && o.wake(), setTimeout(A, 2e3)
        };
        A(), s.play = function(e, t) {
            return null != e && this.seek(e, t), this.reversed(!1).paused(!1)
        }, s.pause = function(e, t) {
            return null != e && this.seek(e, t), this.paused(!0)
        }, s.resume = function(e, t) {
            return null != e && this.seek(e, t), this.paused(!1)
        }, s.seek = function(e, t) {
            return this.totalTime(Number(e), t !== !1)
        }, s.restart = function(e, t) {
            return this.reversed(!1).paused(!1).totalTime(e ? -this._delay : 0, t !== !1, !0)
        }, s.reverse = function(e, t) {
            return null != e && this.seek(e || this.totalDuration(), t), this.reversed(!0).paused(!1)
        }, s.render = function() {
        }, s.invalidate = function() {
            return this._time = this._totalTime = 0, this._initted = this._gc = !1, this._rawPrevTime = -1, (this._gc || !this.timeline) && this._enabled(!0), this
        }, s.isActive = function() {
            var e, t = this._timeline, n = this._startTime;
            return !t || !this._gc && !this._paused && t.isActive() && (e = t.rawTime()) >= n && n + this.totalDuration() / this._timeScale > e
        }, s._enabled = function(e, t) {
            return u || o.wake(), this._gc = !e, this._active = this.isActive(), t !== !0 && (e && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !e && this.timeline && this._timeline._remove(this, !0)), !1
        }, s._kill = function() {
            return this._enabled(!1, !1)
        }, s.kill = function(e, t) {
            return this._kill(e, t), this
        }, s._uncache = function(e) {
            for (var t = e ? this : this.timeline; t; )
                t._dirty = !0, t = t.timeline;
            return this
        }, s._swapSelfInParams = function(e) {
            for (var t = e.length, n = e.concat(); --t > -1; )
                "{self}" === e[t] && (n[t] = this);
            return n
        }, s.eventCallback = function(e, t, n, r) {
            if ("on" === (e || "").substr(0, 2)) {
                var i = this.vars;
                if (1 === arguments.length)
                    return i[e];
                null == t ? delete i[e] : (i[e] = t, i[e + "Params"] = p(n) && -1 !== n.join("").indexOf("{self}") ? this._swapSelfInParams(n) : n, i[e + "Scope"] = r), "onUpdate" === e && (this._onUpdate = t)
            }
            return this
        }, s.delay = function(e) {
            return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + e - this._delay), this._delay = e, this) : this._delay
        }, s.duration = function(e) {
            return arguments.length ? (this._duration = this._totalDuration = e, this._uncache(!0), this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== e && this.totalTime(this._totalTime * (e / this._duration), !0), this) : (this._dirty = !1, this._duration)
        }, s.totalDuration = function(e) {
            return this._dirty = !1, arguments.length ? this.duration(e) : this._totalDuration
        }, s.time = function(e, t) {
            return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(e > this._duration ? this._duration : e, t)) : this._time
        }, s.totalTime = function(e, t, n) {
            if (u || o.wake(), !arguments.length)
                return this._totalTime;
            if (this._timeline) {
                if (0 > e && !n && (e += this.totalDuration()), this._timeline.smoothChildTiming) {
                    this._dirty && this.totalDuration();
                    var r = this._totalDuration, i = this._timeline;
                    if (e > r && !n && (e = r), this._startTime = (this._paused ? this._pauseTime : i._time) - (this._reversed ? r - e : e) / this._timeScale, i._dirty || this._uncache(!1), i._timeline)
                        for (; i._timeline; )
                            i._timeline._time !== (i._startTime + i._totalTime) / i._timeScale && i.totalTime(i._totalTime, !0), i = i._timeline
                }
                this._gc && this._enabled(!0, !1), (this._totalTime !== e || 0 === this._duration) && (this.render(e, t, !1), P.length && W())
            }
            return this
        }, s.progress = s.totalProgress = function(e, t) {
            return arguments.length ? this.totalTime(this.duration() * e, t) : this._time / this.duration()
        }, s.startTime = function(e) {
            return arguments.length ? (e !== this._startTime && (this._startTime = e, this.timeline && this.timeline._sortChildren && this.timeline.add(this, e - this._delay)), this) : this._startTime
        }, s.endTime = function(e) {
            return this._startTime + (0 != e ? this.totalDuration() : this.duration()) / this._timeScale
        }, s.timeScale = function(e) {
            if (!arguments.length)
                return this._timeScale;
            if (e = e || l, this._timeline && this._timeline.smoothChildTiming) {
                var t = this._pauseTime, n = t || 0 === t ? t : this._timeline.totalTime();
                this._startTime = n - (n - this._startTime) * this._timeScale / e
            }
            return this._timeScale = e, this._uncache(!1)
        }, s.reversed = function(e) {
            return arguments.length ? (e != this._reversed && (this._reversed = e, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed
        }, s.paused = function(e) {
            if (!arguments.length)
                return this._paused;
            if (e != this._paused && this._timeline) {
                u || e || o.wake();
                var t = this._timeline, n = t.rawTime(), r = n - this._pauseTime;
                !e && t.smoothChildTiming && (this._startTime += r, this._uncache(!1)), this._pauseTime = e ? n : null, this._paused = e, this._active = this.isActive(), !e && 0 !== r && this._initted && this.duration() && this.render(t.smoothChildTiming ? this._totalTime : (n - this._startTime) / this._timeScale, !0, !0)
            }
            return this._gc && !e && this._enabled(!0, !1), this
        };
        var O = g("core.SimpleTimeline", function(e) {
            L.call(this, 0, e), this.autoRemoveChildren = this.smoothChildTiming = !0
        });
        s = O.prototype = new L, s.constructor = O, s.kill()._gc = !1, s._first = s._last = s._recent = null, s._sortChildren = !1, s.add = s.insert = function(e, t) {
            var n, r;
            if (e._startTime = Number(t || 0) + e._delay, e._paused && this !== e._timeline && (e._pauseTime = e._startTime + (this.rawTime() - e._startTime) / e._timeScale), e.timeline && e.timeline._remove(e, !0), e.timeline = e._timeline = this, e._gc && e._enabled(!0, !0), n = this._last, this._sortChildren)
                for (r = e._startTime; n && n._startTime > r; )
                    n = n._prev;
            return n ? (e._next = n._next, n._next = e) : (e._next = this._first, this._first = e), e._next ? e._next._prev = e : this._last = e, e._prev = n, this._recent = e, this._timeline && this._uncache(!0), this
        }, s._remove = function(e, t) {
            return e.timeline === this && (t || e._enabled(!1, !0), e._prev ? e._prev._next = e._next : this._first === e && (this._first = e._next), e._next ? e._next._prev = e._prev : this._last === e && (this._last = e._prev), e._next = e._prev = e.timeline = null, e === this._recent && (this._recent = this._last), this._timeline && this._uncache(!0)), this
        }, s.render = function(e, t, n) {
            var r, i = this._first;
            for (this._totalTime = this._time = this._rawPrevTime = e; i; )
                r = i._next, (i._active || e >= i._startTime && !i._paused) && (i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)), i = r
        }, s.rawTime = function() {
            return u || o.wake(), this._totalTime
        };
        var M = g("TweenLite", function(t, n, r) {
            if (L.call(this, n, r), this.render = M.prototype.render, null == t)
                throw "Cannot tween a null target.";
            this.target = t = "string" != typeof t ? t : M.selector(t) || t;
            var i, s, o, u = t.jquery || t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType), a = this.vars.overwrite;
            if (this._overwrite = a = null == a ? R[M.defaultOverwrite] : "number" == typeof a ? a >> 0 : R[a], (u || t instanceof Array || t.push && p(t)) && "number" != typeof t[0])
                for (this._targets = o = c(t), this._propLookup = [], this._siblings = [], i = 0; o.length > i; i++)
                    s = o[i], s ? "string" != typeof s ? s.length && s !== e && s[0] && (s[0] === e || s[0].nodeType && s[0].style && !s.nodeType) ? (o.splice(i--, 1), this._targets = o = o.concat(c(s))) : (this._siblings[i] = X(s, this, !1), 1 === a && this._siblings[i].length > 1 && $(s, this, null, 1, this._siblings[i])) : (s = o[i--] = M.selector(s), "string" == typeof s && o.splice(i + 1, 1)) : o.splice(i--, 1);
            else
                this._propLookup = {}, this._siblings = X(t, this, !1), 1 === a && this._siblings.length > 1 && $(t, this, null, 1, this._siblings);
            (this.vars.immediateRender || 0 === n && 0 === this._delay && this.vars.immediateRender !== !1) && (this._time = -l, this.render(-this._delay))
        }, !0), _ = function(t) {
            return t && t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType)
        }, D = function(e, t) {
            var n, r = {};
            for (n in e)
                q[n] || n in t && "transform" !== n && "x" !== n && "y" !== n && "width" !== n && "height" !== n && "className" !== n && "border" !== n || !(!j[n] || j[n] && j[n]._autoCSS) || (r[n] = e[n], delete e[n]);
            e.css = r
        };
        s = M.prototype = new L, s.constructor = M, s.kill()._gc = !1, s.ratio = 0, s._firstPT = s._targets = s._overwrittenProps = s._startAt = null, s._notifyPluginsOfEnabled = s._lazy = !1, M.version = "1.14.1", M.defaultEase = s._ease = new w(null, null, 1, 1), M.defaultOverwrite = "auto", M.ticker = o, M.autoSleep = !0, M.lagSmoothing = function(e, t) {
            o.lagSmoothing(e, t)
        }, M.selector = e.$ || e.jQuery || function(t) {
            var n = e.$ || e.jQuery;
            return n ? (M.selector = n, n(t)) : "undefined" == typeof document ? t : document.querySelectorAll ? document.querySelectorAll(t) : document.getElementById("#" === t.charAt(0) ? t.substr(1) : t)
        };
        var P = [], H = {}, B = M._internals = {isArray: p,isSelector: _,lazyTweens: P}, j = M._plugins = {}, F = B.tweenLookup = {}, I = 0, q = B.reservedProps = {ease: 1,delay: 1,overwrite: 1,onComplete: 1,onCompleteParams: 1,onCompleteScope: 1,useFrames: 1,runBackwards: 1,startAt: 1,onUpdate: 1,onUpdateParams: 1,onUpdateScope: 1,onStart: 1,onStartParams: 1,onStartScope: 1,onReverseComplete: 1,onReverseCompleteParams: 1,onReverseCompleteScope: 1,onRepeat: 1,onRepeatParams: 1,onRepeatScope: 1,easeParams: 1,yoyo: 1,immediateRender: 1,repeat: 1,repeatDelay: 1,data: 1,paused: 1,reversed: 1,autoCSS: 1,lazy: 1,onOverwrite: 1}, R = {none: 0,all: 1,auto: 2,concurrent: 3,allOnStart: 4,preexisting: 5,"true": 1,"false": 0}, U = L._rootFramesTimeline = new O, z = L._rootTimeline = new O, W = B.lazyRender = function() {
            var e, t = P.length;
            for (H = {}; --t > -1; )
                e = P[t], e && e._lazy !== !1 && (e.render(e._lazy[0], e._lazy[1], !0), e._lazy = !1);
            P.length = 0
        };
        z._startTime = o.time, U._startTime = o.frame, z._active = U._active = !0, setTimeout(W, 1), L._updateRoot = M.render = function() {
            var e, t, n;
            if (P.length && W(), z.render((o.time - z._startTime) * z._timeScale, !1, !1), U.render((o.frame - U._startTime) * U._timeScale, !1, !1), P.length && W(), !(o.frame % 120)) {
                for (n in F) {
                    for (t = F[n].tweens, e = t.length; --e > -1; )
                        t[e]._gc && t.splice(e, 1);
                    0 === t.length && delete F[n]
                }
                if (n = z._first, (!n || n._paused) && M.autoSleep && !U._first && 1 === o._listeners.tick.length) {
                    for (; n && n._paused; )
                        n = n._next;
                    n || o.sleep()
                }
            }
        }, o.addEventListener("tick", L._updateRoot);
        var X = function(e, t, n) {
            var r, i, s = e._gsTweenID;
            if (F[s || (e._gsTweenID = s = "t" + I++)] || (F[s] = {target: e,tweens: []}), t && (r = F[s].tweens, r[i = r.length] = t, n))
                for (; --i > -1; )
                    r[i] === t && r.splice(i, 1);
            return F[s].tweens
        }, V = function(e, t, n, r) {
            var i = e.vars.onOverwrite;
            i && i(e, t, n, r), i = M.onOverwrite, i && i(e, t, n, r)
        }, $ = function(e, t, n, r, i) {
            var s, o, u, a;
            if (1 === r || r >= 4) {
                for (a = i.length, s = 0; a > s; s++)
                    if ((u = i[s]) !== t)
                        u._gc || (u._enabled(!1, !1) && (o = !0), V(u, t));
                    else if (5 === r)
                        break;
                return o
            }
            var f, c = t._startTime + l, h = [], p = 0, d = 0 === t._duration;
            for (s = i.length; --s > -1; )
                (u = i[s]) === t || u._gc || u._paused || (u._timeline !== t._timeline ? (f = f || J(t, 0, d), 0 === J(u, f, d) && (h[p++] = u)) : c >= u._startTime && u._startTime + u.totalDuration() / u._timeScale > c && ((d || !u._initted) && 2e-10 >= c - u._startTime || (h[p++] = u)));
            for (s = p; --s > -1; )
                u = h[s], 2 === r && u._kill(n, e, t) && (o = !0), (2 !== r || !u._firstPT && u._initted) && (u._enabled(!1, !1) && (o = !0), 2 !== r && V(u, t));
            return o
        }, J = function(e, t, n) {
            for (var r = e._timeline, i = r._timeScale, s = e._startTime; r._timeline; ) {
                if (s += r._startTime, i *= r._timeScale, r._paused)
                    return -100;
                r = r._timeline
            }
            return s /= i, s > t ? s - t : n && s === t || !e._initted && 2 * l > s - t ? l : (s += e.totalDuration() / e._timeScale / i) > t + l ? 0 : s - t - l
        };
        s._init = function() {
            var e, t, n, r, i, s = this.vars, o = this._overwrittenProps, u = this._duration, a = !!s.immediateRender, f = s.ease;
            if (s.startAt) {
                this._startAt && (this._startAt.render(-1, !0), this._startAt.kill()), i = {};
                for (r in s.startAt)
                    i[r] = s.startAt[r];
                if (i.overwrite = !1, i.immediateRender = !0, i.lazy = a && s.lazy !== !1, i.startAt = i.delay = null, this._startAt = M.to(this.target, 0, i), a)
                    if (this._time > 0)
                        this._startAt = null;
                    else if (0 !== u)
                        return
            } else if (s.runBackwards && 0 !== u)
                if (this._startAt)
                    this._startAt.render(-1, !0), this._startAt.kill(), this._startAt = null;
                else {
                    0 !== this._time && (a = !1), n = {};
                    for (r in s)
                        q[r] && "autoCSS" !== r || (n[r] = s[r]);
                    if (n.overwrite = 0, n.data = "isFromStart", n.lazy = a && s.lazy !== !1, n.immediateRender = a, this._startAt = M.to(this.target, 0, n), a) {
                        if (0 === this._time)
                            return
                    } else
                        this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null)
                }
            if (this._ease = f = f ? f instanceof w ? f : "function" == typeof f ? new w(f, s.easeParams) : E[f] || M.defaultEase : M.defaultEase, s.easeParams instanceof Array && f.config && (this._ease = f.config.apply(f, s.easeParams)), this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets)
                for (e = this._targets.length; --e > -1; )
                    this._initProps(this._targets[e], this._propLookup[e] = {}, this._siblings[e], o ? o[e] : null) && (t = !0);
            else
                t = this._initProps(this.target, this._propLookup, this._siblings, o);
            if (t && M._onPluginEvent("_onInitAllProps", this), o && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), s.runBackwards)
                for (n = this._firstPT; n; )
                    n.s += n.c, n.c = -n.c, n = n._next;
            this._onUpdate = s.onUpdate, this._initted = !0
        }, s._initProps = function(t, n, r, i) {
            var s, o, u, a, f, l;
            if (null == t)
                return !1;
            H[t._gsTweenID] && W(), this.vars.css || t.style && t !== e && t.nodeType && j.css && this.vars.autoCSS !== !1 && D(this.vars, t);
            for (s in this.vars) {
                if (l = this.vars[s], q[s])
                    l && (l instanceof Array || l.push && p(l)) && -1 !== l.join("").indexOf("{self}") && (this.vars[s] = l = this._swapSelfInParams(l, this));
                else if (j[s] && (a = new j[s])._onInitTween(t, this.vars[s], this)) {
                    for (this._firstPT = f = {_next: this._firstPT,t: a,p: "setRatio",s: 0,c: 1,f: !0,n: s,pg: !0,pr: a._priority}, o = a._overwriteProps.length; --o > -1; )
                        n[a._overwriteProps[o]] = this._firstPT;
                    (a._priority || a._onInitAllProps) && (u = !0), (a._onDisable || a._onEnable) && (this._notifyPluginsOfEnabled = !0)
                } else
                    this._firstPT = n[s] = f = {_next: this._firstPT,t: t,p: s,f: "function" == typeof t[s],n: s,pg: !1,pr: 0}, f.s = f.f ? t[s.indexOf("set") || "function" != typeof t["get" + s.substr(3)] ? s : "get" + s.substr(3)]() : parseFloat(t[s]), f.c = "string" == typeof l && "=" === l.charAt(1) ? parseInt(l.charAt(0) + "1", 10) * Number(l.substr(2)) : Number(l) - f.s || 0;
                f && f._next && (f._next._prev = f)
            }
            return i && this._kill(i, t) ? this._initProps(t, n, r, i) : this._overwrite > 1 && this._firstPT && r.length > 1 && $(t, this, n, this._overwrite, r) ? (this._kill(n, t), this._initProps(t, n, r, i)) : (this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration) && (H[t._gsTweenID] = !0), u)
        }, s.render = function(e, t, n) {
            var r, i, s, o, u = this._time, a = this._duration, f = this._rawPrevTime;
            if (e >= a)
                this._totalTime = this._time = a, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (r = !0, i = "onComplete"), 0 === a && (this._initted || !this.vars.lazy || n) && (this._startTime === this._timeline._duration && (e = 0), (0 === e || 0 > f || f === l) && f !== e && (n = !0, f > l && (i = "onReverseComplete")), this._rawPrevTime = o = !t || e || f === e ? e : l);
            else if (1e-7 > e)
                this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== u || 0 === a && f > 0 && f !== l) && (i = "onReverseComplete", r = this._reversed), 0 > e && (this._active = !1, 0 === a && (this._initted || !this.vars.lazy || n) && (f >= 0 && (n = !0), this._rawPrevTime = o = !t || e || f === e ? e : l)), this._initted || (n = !0);
            else if (this._totalTime = this._time = e, this._easeType) {
                var c = e / a, h = this._easeType, p = this._easePower;
                (1 === h || 3 === h && c >= .5) && (c = 1 - c), 3 === h && (c *= 2), 1 === p ? c *= c : 2 === p ? c *= c * c : 3 === p ? c *= c * c * c : 4 === p && (c *= c * c * c * c), this.ratio = 1 === h ? 1 - c : 2 === h ? c : .5 > e / a ? c / 2 : 1 - c / 2
            } else
                this.ratio = this._ease.getRatio(e / a);
            if (this._time !== u || n) {
                if (!this._initted) {
                    if (this._init(), !this._initted || this._gc)
                        return;
                    if (!n && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration))
                        return this._time = this._totalTime = u, this._rawPrevTime = f, P.push(this), this._lazy = [e, t], void 0;
                    this._time && !r ? this.ratio = this._ease.getRatio(this._time / a) : r && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
                }
                for (this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== u && e >= 0 && (this._active = !0), 0 === u && (this._startAt && (e >= 0 ? this._startAt.render(e, t, n) : i || (i = "_dummyGS")), this.vars.onStart && (0 !== this._time || 0 === a) && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || b))), s = this._firstPT; s; )
                    s.f ? s.t[s.p](s.c * this.ratio + s.s) : s.t[s.p] = s.c * this.ratio + s.s, s = s._next;
                this._onUpdate && (0 > e && this._startAt && e !== -0.0001 && this._startAt.render(e, t, n), t || (this._time !== u || r) && this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || b)), i && (!this._gc || n) && (0 > e && this._startAt && !this._onUpdate && e !== -0.0001 && this._startAt.render(e, t, n), r && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[i] && this.vars[i].apply(this.vars[i + "Scope"] || this, this.vars[i + "Params"] || b), 0 === a && this._rawPrevTime === l && o !== l && (this._rawPrevTime = 0))
            }
        }, s._kill = function(e, t, n) {
            if ("all" === e && (e = null), null != e || null != t && t !== this.target) {
                t = "string" != typeof t ? t || this._targets || this.target : M.selector(t) || t;
                var r, i, s, o, u, a, f, l, c;
                if ((p(t) || _(t)) && "number" != typeof t[0])
                    for (r = t.length; --r > -1; )
                        this._kill(e, t[r]) && (a = !0);
                else {
                    if (this._targets) {
                        for (r = this._targets.length; --r > -1; )
                            if (t === this._targets[r]) {
                                u = this._propLookup[r] || {}, this._overwrittenProps = this._overwrittenProps || [], i = this._overwrittenProps[r] = e ? this._overwrittenProps[r] || {} : "all";
                                break
                            }
                    } else {
                        if (t !== this.target)
                            return !1;
                        u = this._propLookup, i = this._overwrittenProps = e ? this._overwrittenProps || {} : "all"
                    }
                    if (u) {
                        f = e || u, l = e !== i && "all" !== i && e !== u && ("object" != typeof e || !e._tempKill);
                        for (s in f)
                            (o = u[s]) && (c || (c = []), c.push(s), o.pg && o.t._kill(f) && (a = !0), o.pg && 0 !== o.t._overwriteProps.length || (o._prev ? o._prev._next = o._next : o === this._firstPT && (this._firstPT = o._next), o._next && (o._next._prev = o._prev), o._next = o._prev = null), delete u[s]), l && (i[s] = 1);
                        !this._firstPT && this._initted && this._enabled(!1, !1), c && n && V(this, n, t, c)
                    }
                }
                return a
            }
            return this._lazy = !1, this._enabled(!1, !1)
        }, s.invalidate = function() {
            return this._notifyPluginsOfEnabled && M._onPluginEvent("_onDisable", this), this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null, this._notifyPluginsOfEnabled = this._active = this._lazy = !1, this._propLookup = this._targets ? {} : [], L.prototype.invalidate.call(this), this.vars.immediateRender && (this._time = -l, this.render(-this._delay)), this
        }, s._enabled = function(e, t) {
            if (u || o.wake(), e && this._gc) {
                var n, r = this._targets;
                if (r)
                    for (n = r.length; --n > -1; )
                        this._siblings[n] = X(r[n], this, !0);
                else
                    this._siblings = X(this.target, this, !0)
            }
            return L.prototype._enabled.call(this, e, t), this._notifyPluginsOfEnabled && this._firstPT ? M._onPluginEvent(e ? "_onEnable" : "_onDisable", this) : !1
        }, M.to = function(e, t, n) {
            return new M(e, t, n)
        }, M.from = function(e, t, n) {
            return n.runBackwards = !0, n.immediateRender = 0 != n.immediateRender, new M(e, t, n)
        }, M.fromTo = function(e, t, n, r) {
            return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, new M(e, t, r)
        }, M.delayedCall = function(e, t, n, r, i) {
            return new M(t, 0, {delay: e,onComplete: t,onCompleteParams: n,onCompleteScope: r,onReverseComplete: t,onReverseCompleteParams: n,onReverseCompleteScope: r,immediateRender: !1,useFrames: i,overwrite: 0})
        }, M.set = function(e, t) {
            return new M(e, 0, t)
        }, M.getTweensOf = function(e, t) {
            if (null == e)
                return [];
            e = "string" != typeof e ? e : M.selector(e) || e;
            var n, r, i, s;
            if ((p(e) || _(e)) && "number" != typeof e[0]) {
                for (n = e.length, r = []; --n > -1; )
                    r = r.concat(M.getTweensOf(e[n], t));
                for (n = r.length; --n > -1; )
                    for (s = r[n], i = n; --i > -1; )
                        s === r[i] && r.splice(n, 1)
            } else
                for (r = X(e).concat(), n = r.length; --n > -1; )
                    (r[n]._gc || t && !r[n].isActive()) && r.splice(n, 1);
            return r
        }, M.killTweensOf = M.killDelayedCallsTo = function(e, t, n) {
            "object" == typeof t && (n = t, t = !1);
            for (var r = M.getTweensOf(e, t), i = r.length; --i > -1; )
                r[i]._kill(n, e)
        };
        var K = g("plugins.TweenPlugin", function(e, t) {
            this._overwriteProps = (e || "").split(","), this._propName = this._overwriteProps[0], this._priority = t || 0, this._super = K.prototype
        }, !0);
        if (s = K.prototype, K.version = "1.10.1", K.API = 2, s._firstPT = null, s._addTween = function(e, t, n, r, i, s) {
            var o, u;
            return null != r && (o = "number" == typeof r || "=" !== r.charAt(1) ? Number(r) - n : parseInt(r.charAt(0) + "1", 10) * Number(r.substr(2))) ? (this._firstPT = u = {_next: this._firstPT,t: e,p: t,s: n,c: o,f: "function" == typeof e[t],n: i || t,r: s}, u._next && (u._next._prev = u), u) : void 0
        }, s.setRatio = function(e) {
            for (var t, n = this._firstPT, r = 1e-6; n; )
                t = n.c * e + n.s, n.r ? t = Math.round(t) : r > t && t > -r && (t = 0), n.f ? n.t[n.p](t) : n.t[n.p] = t, n = n._next
        }, s._kill = function(e) {
            var t, n = this._overwriteProps, r = this._firstPT;
            if (null != e[this._propName])
                this._overwriteProps = [];
            else
                for (t = n.length; --t > -1; )
                    null != e[n[t]] && n.splice(t, 1);
            for (; r; )
                null != e[r.n] && (r._next && (r._next._prev = r._prev), r._prev ? (r._prev._next = r._next, r._prev = null) : this._firstPT === r && (this._firstPT = r._next)), r = r._next;
            return !1
        }, s._roundProps = function(e, t) {
            for (var n = this._firstPT; n; )
                (e[this._propName] || null != n.n && e[n.n.split(this._propName + "_").join("")]) && (n.r = t), n = n._next
        }, M._onPluginEvent = function(e, t) {
            var n, r, i, s, o, u = t._firstPT;
            if ("_onInitAllProps" === e) {
                for (; u; ) {
                    for (o = u._next, r = i; r && r.pr > u.pr; )
                        r = r._next;
                    (u._prev = r ? r._prev : s) ? u._prev._next = u : i = u, (u._next = r) ? r._prev = u : s = u, u = o
                }
                u = t._firstPT = i
            }
            for (; u; )
                u.pg && "function" == typeof u.t[e] && u.t[e]() && (n = !0), u = u._next;
            return n
        }, K.activate = function(e) {
            for (var t = e.length; --t > -1; )
                e[t].API === K.API && (j[(new e[t])._propName] = e[t]);
            return !0
        }, m.plugin = function(e) {
            if (!(e && e.propName && e.init && e.API))
                throw "illegal plugin definition.";
            var t, n = e.propName, r = e.priority || 0, i = e.overwriteProps, s = {init: "_onInitTween",set: "setRatio",kill: "_kill",round: "_roundProps",initAll: "_onInitAllProps"}, o = g("plugins." + n.charAt(0).toUpperCase() + n.substr(1) + "Plugin", function() {
                K.call(this, n, r), this._overwriteProps = i || []
            }, e.global === !0), u = o.prototype = new K(n);
            u.constructor = o, o.API = e.API;
            for (t in s)
                "function" == typeof e[t] && (u[s[t]] = e[t]);
            return o.version = e.version, K.activate([o]), o
        }, r = e._gsQueue) {
            for (i = 0; r.length > i; i++)
                r[i]();
            for (s in d)
                d[s].func || e.console.log("GSAP encountered missing dependency: com.greensock." + s)
        }
        u = !1
    }
}("undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window, "TweenMax"), define("TweenMax", function() {
}), function(e, t) {
    var n = e.GreenSockGlobals = e.GreenSockGlobals || e;
    if (!n.TweenLite) {
        var r, i, s, o, u, a = function(e) {
            var t, r = e.split("."), i = n;
            for (t = 0; r.length > t; t++)
                i[r[t]] = i = i[r[t]] || {};
            return i
        }, f = a("com.greensock"), l = 1e-10, c = function(e) {
            var t, n = [], r = e.length;
            for (t = 0; t !== r; n.push(e[t++]))
                ;
            return n
        }, h = function() {
        }, p = function() {
            var e = Object.prototype.toString, t = e.call([]);
            return function(n) {
                return null != n && (n instanceof Array || "object" == typeof n && !!n.push && e.call(n) === t)
            }
        }(), d = {}, v = function(r, i, s, o) {
            this.sc = d[r] ? d[r].sc : [], d[r] = this, this.gsClass = null, this.func = s;
            var u = [];
            this.check = function(f) {
                for (var l, c, h, p, m = i.length, g = m; --m > -1; )
                    (l = d[i[m]] || new v(i[m], [])).gsClass ? (u[m] = l.gsClass, g--) : f && l.sc.push(this);
                if (0 === g && s)
                    for (c = ("com.greensock." + r).split("."), h = c.pop(), p = a(c.join("."))[h] = this.gsClass = s.apply(s, u), o && (n[h] = p, "function" == typeof define && define.amd ? define((e.GreenSockAMDPath ? e.GreenSockAMDPath + "/" : "") + r.split(".").pop(), [], function() {
                        return p
                    }) : r === t && "undefined" != typeof module && module.exports && (module.exports = p)), m = 0; this.sc.length > m; m++)
                        this.sc[m].check()
            }, this.check(!0)
        }, m = e._gsDefine = function(e, t, n, r) {
            return new v(e, t, n, r)
        }, g = f._class = function(e, t, n) {
            return t = t || function() {
            }, m(e, [], function() {
                return t
            }, n), t
        };
        m.globals = n;
        var y = [0, 0, 1, 1], b = [], w = g("easing.Ease", function(e, t, n, r) {
            this._func = e, this._type = n || 0, this._power = r || 0, this._params = t ? y.concat(t) : y
        }, !0), E = w.map = {}, S = w.register = function(e, t, n, r) {
            for (var i, s, o, u, a = t.split(","), l = a.length, c = (n || "easeIn,easeOut,easeInOut").split(","); --l > -1; )
                for (s = a[l], i = r ? g("easing." + s, null, !0) : f.easing[s] || {}, o = c.length; --o > -1; )
                    u = c[o], E[s + "." + u] = E[u + s] = i[u] = e.getRatio ? e : e[u] || new e
        };
        for (s = w.prototype, s._calcEnd = !1, s.getRatio = function(e) {
            if (this._func)
                return this._params[0] = e, this._func.apply(null, this._params);
            var t = this._type, n = this._power, r = 1 === t ? 1 - e : 2 === t ? e : .5 > e ? 2 * e : 2 * (1 - e);
            return 1 === n ? r *= r : 2 === n ? r *= r * r : 3 === n ? r *= r * r * r : 4 === n && (r *= r * r * r * r), 1 === t ? 1 - r : 2 === t ? r : .5 > e ? r / 2 : 1 - r / 2
        }, r = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"], i = r.length; --i > -1; )
            s = r[i] + ",Power" + i, S(new w(null, null, 1, i), s, "easeOut", !0), S(new w(null, null, 2, i), s, "easeIn" + (0 === i ? ",easeNone" : "")), S(new w(null, null, 3, i), s, "easeInOut");
        E.linear = f.easing.Linear.easeIn, E.swing = f.easing.Quad.easeInOut;
        var x = g("events.EventDispatcher", function(e) {
            this._listeners = {}, this._eventTarget = e || this
        });
        s = x.prototype, s.addEventListener = function(e, t, n, r, i) {
            i = i || 0;
            var s, a, f = this._listeners[e], l = 0;
            for (null == f && (this._listeners[e] = f = []), a = f.length; --a > -1; )
                s = f[a], s.c === t && s.s === n ? f.splice(a, 1) : 0 === l && i > s.pr && (l = a + 1);
            f.splice(l, 0, {c: t,s: n,up: r,pr: i}), this !== o || u || o.wake()
        }, s.removeEventListener = function(e, t) {
            var n, r = this._listeners[e];
            if (r)
                for (n = r.length; --n > -1; )
                    if (r[n].c === t)
                        return r.splice(n, 1), void 0
        }, s.dispatchEvent = function(e) {
            var t, n, r, i = this._listeners[e];
            if (i)
                for (t = i.length, n = this._eventTarget; --t > -1; )
                    r = i[t], r && (r.up ? r.c.call(r.s || n, {type: e,target: n}) : r.c.call(r.s || n))
        };
        var T = e.requestAnimationFrame, N = e.cancelAnimationFrame, C = Date.now || function() {
            return (new Date).getTime()
        }, k = C();
        for (r = ["ms", "moz", "webkit", "o"], i = r.length; --i > -1 && !T; )
            T = e[r[i] + "RequestAnimationFrame"], N = e[r[i] + "CancelAnimationFrame"] || e[r[i] + "CancelRequestAnimationFrame"];
        g("Ticker", function(e, t) {
            var n, r, i, s, a, f = this, c = C(), p = t !== !1 && T, d = 500, v = 33, m = function(e) {
                var t, o, u = C() - k;
                u > d && (c += u - v), k += u, f.time = (k - c) / 1e3, t = f.time - a, (!n || t > 0 || e === !0) && (f.frame++, a += t + (t >= s ? .004 : s - t), o = !0), e !== !0 && (i = r(m)), o && f.dispatchEvent("tick")
            };
            x.call(f), f.time = f.frame = 0, f.tick = function() {
                m(!0)
            }, f.lagSmoothing = function(e, t) {
                d = e || 1 / l, v = Math.min(t, d, 0)
            }, f.sleep = function() {
                null != i && (p && N ? N(i) : clearTimeout(i), r = h, i = null, f === o && (u = !1))
            }, f.wake = function() {
                null !== i ? f.sleep() : f.frame > 10 && (k = C() - d + 5), r = 0 === n ? h : p && T ? T : function(e) {
                    return setTimeout(e, 0 | 1e3 * (a - f.time) + 1)
                }, f === o && (u = !0), m(2)
            }, f.fps = function(e) {
                return arguments.length ? (n = e, s = 1 / (n || 60), a = this.time + s, f.wake(), void 0) : n
            }, f.useRAF = function(e) {
                return arguments.length ? (f.sleep(), p = e, f.fps(n), void 0) : p
            }, f.fps(e), setTimeout(function() {
                p && (!i || 5 > f.frame) && f.useRAF(!1)
            }, 1500)
        }), s = f.Ticker.prototype = new f.events.EventDispatcher, s.constructor = f.Ticker;
        var L = g("core.Animation", function(e, t) {
            if (this.vars = t = t || {}, this._duration = this._totalDuration = e || 0, this._delay = Number(t.delay) || 0, this._timeScale = 1, this._active = t.immediateRender === !0, this.data = t.data, this._reversed = t.reversed === !0, z) {
                u || o.wake();
                var n = this.vars.useFrames ? U : z;
                n.add(this, n._time), this.vars.paused && this.paused(!0)
            }
        });
        o = L.ticker = new f.Ticker, s = L.prototype, s._dirty = s._gc = s._initted = s._paused = !1, s._totalTime = s._time = 0, s._rawPrevTime = -1, s._next = s._last = s._onUpdate = s._timeline = s.timeline = null, s._paused = !1;
        var A = function() {
            u && C() - k > 2e3 && o.wake(), setTimeout(A, 2e3)
        };
        A(), s.play = function(e, t) {
            return null != e && this.seek(e, t), this.reversed(!1).paused(!1)
        }, s.pause = function(e, t) {
            return null != e && this.seek(e, t), this.paused(!0)
        }, s.resume = function(e, t) {
            return null != e && this.seek(e, t), this.paused(!1)
        }, s.seek = function(e, t) {
            return this.totalTime(Number(e), t !== !1)
        }, s.restart = function(e, t) {
            return this.reversed(!1).paused(!1).totalTime(e ? -this._delay : 0, t !== !1, !0)
        }, s.reverse = function(e, t) {
            return null != e && this.seek(e || this.totalDuration(), t), this.reversed(!0).paused(!1)
        }, s.render = function() {
        }, s.invalidate = function() {
            return this._time = this._totalTime = 0, this._initted = this._gc = !1, this._rawPrevTime = -1, (this._gc || !this.timeline) && this._enabled(!0), this
        }, s.isActive = function() {
            var e, t = this._timeline, n = this._startTime;
            return !t || !this._gc && !this._paused && t.isActive() && (e = t.rawTime()) >= n && n + this.totalDuration() / this._timeScale > e
        }, s._enabled = function(e, t) {
            return u || o.wake(), this._gc = !e, this._active = this.isActive(), t !== !0 && (e && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !e && this.timeline && this._timeline._remove(this, !0)), !1
        }, s._kill = function() {
            return this._enabled(!1, !1)
        }, s.kill = function(e, t) {
            return this._kill(e, t), this
        }, s._uncache = function(e) {
            for (var t = e ? this : this.timeline; t; )
                t._dirty = !0, t = t.timeline;
            return this
        }, s._swapSelfInParams = function(e) {
            for (var t = e.length, n = e.concat(); --t > -1; )
                "{self}" === e[t] && (n[t] = this);
            return n
        }, s.eventCallback = function(e, t, n, r) {
            if ("on" === (e || "").substr(0, 2)) {
                var i = this.vars;
                if (1 === arguments.length)
                    return i[e];
                null == t ? delete i[e] : (i[e] = t, i[e + "Params"] = p(n) && -1 !== n.join("").indexOf("{self}") ? this._swapSelfInParams(n) : n, i[e + "Scope"] = r), "onUpdate" === e && (this._onUpdate = t)
            }
            return this
        }, s.delay = function(e) {
            return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + e - this._delay), this._delay = e, this) : this._delay
        }, s.duration = function(e) {
            return arguments.length ? (this._duration = this._totalDuration = e, this._uncache(!0), this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== e && this.totalTime(this._totalTime * (e / this._duration), !0), this) : (this._dirty = !1, this._duration)
        }, s.totalDuration = function(e) {
            return this._dirty = !1, arguments.length ? this.duration(e) : this._totalDuration
        }, s.time = function(e, t) {
            return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(e > this._duration ? this._duration : e, t)) : this._time
        }, s.totalTime = function(e, t, n) {
            if (u || o.wake(), !arguments.length)
                return this._totalTime;
            if (this._timeline) {
                if (0 > e && !n && (e += this.totalDuration()), this._timeline.smoothChildTiming) {
                    this._dirty && this.totalDuration();
                    var r = this._totalDuration, i = this._timeline;
                    if (e > r && !n && (e = r), this._startTime = (this._paused ? this._pauseTime : i._time) - (this._reversed ? r - e : e) / this._timeScale, i._dirty || this._uncache(!1), i._timeline)
                        for (; i._timeline; )
                            i._timeline._time !== (i._startTime + i._totalTime) / i._timeScale && i.totalTime(i._totalTime, !0), i = i._timeline
                }
                this._gc && this._enabled(!0, !1), (this._totalTime !== e || 0 === this._duration) && (this.render(e, t, !1), P.length && W())
            }
            return this
        }, s.progress = s.totalProgress = function(e, t) {
            return arguments.length ? this.totalTime(this.duration() * e, t) : this._time / this.duration()
        }, s.startTime = function(e) {
            return arguments.length ? (e !== this._startTime && (this._startTime = e, this.timeline && this.timeline._sortChildren && this.timeline.add(this, e - this._delay)), this) : this._startTime
        }, s.endTime = function(e) {
            return this._startTime + (0 != e ? this.totalDuration() : this.duration()) / this._timeScale
        }, s.timeScale = function(e) {
            if (!arguments.length)
                return this._timeScale;
            if (e = e || l, this._timeline && this._timeline.smoothChildTiming) {
                var t = this._pauseTime, n = t || 0 === t ? t : this._timeline.totalTime();
                this._startTime = n - (n - this._startTime) * this._timeScale / e
            }
            return this._timeScale = e, this._uncache(!1)
        }, s.reversed = function(e) {
            return arguments.length ? (e != this._reversed && (this._reversed = e, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed
        }, s.paused = function(e) {
            if (!arguments.length)
                return this._paused;
            if (e != this._paused && this._timeline) {
                u || e || o.wake();
                var t = this._timeline, n = t.rawTime(), r = n - this._pauseTime;
                !e && t.smoothChildTiming && (this._startTime += r, this._uncache(!1)), this._pauseTime = e ? n : null, this._paused = e, this._active = this.isActive(), !e && 0 !== r && this._initted && this.duration() && this.render(t.smoothChildTiming ? this._totalTime : (n - this._startTime) / this._timeScale, !0, !0)
            }
            return this._gc && !e && this._enabled(!0, !1), this
        };
        var O = g("core.SimpleTimeline", function(e) {
            L.call(this, 0, e), this.autoRemoveChildren = this.smoothChildTiming = !0
        });
        s = O.prototype = new L, s.constructor = O, s.kill()._gc = !1, s._first = s._last = s._recent = null, s._sortChildren = !1, s.add = s.insert = function(e, t) {
            var n, r;
            if (e._startTime = Number(t || 0) + e._delay, e._paused && this !== e._timeline && (e._pauseTime = e._startTime + (this.rawTime() - e._startTime) / e._timeScale), e.timeline && e.timeline._remove(e, !0), e.timeline = e._timeline = this, e._gc && e._enabled(!0, !0), n = this._last, this._sortChildren)
                for (r = e._startTime; n && n._startTime > r; )
                    n = n._prev;
            return n ? (e._next = n._next, n._next = e) : (e._next = this._first, this._first = e), e._next ? e._next._prev = e : this._last = e, e._prev = n, this._recent = e, this._timeline && this._uncache(!0), this
        }, s._remove = function(e, t) {
            return e.timeline === this && (t || e._enabled(!1, !0), e._prev ? e._prev._next = e._next : this._first === e && (this._first = e._next), e._next ? e._next._prev = e._prev : this._last === e && (this._last = e._prev), e._next = e._prev = e.timeline = null, e === this._recent && (this._recent = this._last), this._timeline && this._uncache(!0)), this
        }, s.render = function(e, t, n) {
            var r, i = this._first;
            for (this._totalTime = this._time = this._rawPrevTime = e; i; )
                r = i._next, (i._active || e >= i._startTime && !i._paused) && (i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)), i = r
        }, s.rawTime = function() {
            return u || o.wake(), this._totalTime
        };
        var M = g("TweenLite", function(t, n, r) {
            if (L.call(this, n, r), this.render = M.prototype.render, null == t)
                throw "Cannot tween a null target.";
            this.target = t = "string" != typeof t ? t : M.selector(t) || t;
            var i, s, o, u = t.jquery || t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType), a = this.vars.overwrite;
            if (this._overwrite = a = null == a ? R[M.defaultOverwrite] : "number" == typeof a ? a >> 0 : R[a], (u || t instanceof Array || t.push && p(t)) && "number" != typeof t[0])
                for (this._targets = o = c(t), this._propLookup = [], this._siblings = [], i = 0; o.length > i; i++)
                    s = o[i], s ? "string" != typeof s ? s.length && s !== e && s[0] && (s[0] === e || s[0].nodeType && s[0].style && !s.nodeType) ? (o.splice(i--, 1), this._targets = o = o.concat(c(s))) : (this._siblings[i] = X(s, this, !1), 1 === a && this._siblings[i].length > 1 && $(s, this, null, 1, this._siblings[i])) : (s = o[i--] = M.selector(s), "string" == typeof s && o.splice(i + 1, 1)) : o.splice(i--, 1);
            else
                this._propLookup = {}, this._siblings = X(t, this, !1), 1 === a && this._siblings.length > 1 && $(t, this, null, 1, this._siblings);
            (this.vars.immediateRender || 0 === n && 0 === this._delay && this.vars.immediateRender !== !1) && (this._time = -l, this.render(-this._delay))
        }, !0), _ = function(t) {
            return t && t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType)
        }, D = function(e, t) {
            var n, r = {};
            for (n in e)
                q[n] || n in t && "transform" !== n && "x" !== n && "y" !== n && "width" !== n && "height" !== n && "className" !== n && "border" !== n || !(!j[n] || j[n] && j[n]._autoCSS) || (r[n] = e[n], delete e[n]);
            e.css = r
        };
        s = M.prototype = new L, s.constructor = M, s.kill()._gc = !1, s.ratio = 0, s._firstPT = s._targets = s._overwrittenProps = s._startAt = null, s._notifyPluginsOfEnabled = s._lazy = !1, M.version = "1.14.1", M.defaultEase = s._ease = new w(null, null, 1, 1), M.defaultOverwrite = "auto", M.ticker = o, M.autoSleep = !0, M.lagSmoothing = function(e, t) {
            o.lagSmoothing(e, t)
        }, M.selector = e.$ || e.jQuery || function(t) {
            var n = e.$ || e.jQuery;
            return n ? (M.selector = n, n(t)) : "undefined" == typeof document ? t : document.querySelectorAll ? document.querySelectorAll(t) : document.getElementById("#" === t.charAt(0) ? t.substr(1) : t)
        };
        var P = [], H = {}, B = M._internals = {isArray: p,isSelector: _,lazyTweens: P}, j = M._plugins = {}, F = B.tweenLookup = {}, I = 0, q = B.reservedProps = {ease: 1,delay: 1,overwrite: 1,onComplete: 1,onCompleteParams: 1,onCompleteScope: 1,useFrames: 1,runBackwards: 1,startAt: 1,onUpdate: 1,onUpdateParams: 1,onUpdateScope: 1,onStart: 1,onStartParams: 1,onStartScope: 1,onReverseComplete: 1,onReverseCompleteParams: 1,onReverseCompleteScope: 1,onRepeat: 1,onRepeatParams: 1,onRepeatScope: 1,easeParams: 1,yoyo: 1,immediateRender: 1,repeat: 1,repeatDelay: 1,data: 1,paused: 1,reversed: 1,autoCSS: 1,lazy: 1,onOverwrite: 1}, R = {none: 0,all: 1,auto: 2,concurrent: 3,allOnStart: 4,preexisting: 5,"true": 1,"false": 0}, U = L._rootFramesTimeline = new O, z = L._rootTimeline = new O, W = B.lazyRender = function() {
            var e, t = P.length;
            for (H = {}; --t > -1; )
                e = P[t], e && e._lazy !== !1 && (e.render(e._lazy[0], e._lazy[1], !0), e._lazy = !1);
            P.length = 0
        };
        z._startTime = o.time, U._startTime = o.frame, z._active = U._active = !0, setTimeout(W, 1), L._updateRoot = M.render = function() {
            var e, t, n;
            if (P.length && W(), z.render((o.time - z._startTime) * z._timeScale, !1, !1), U.render((o.frame - U._startTime) * U._timeScale, !1, !1), P.length && W(), !(o.frame % 120)) {
                for (n in F) {
                    for (t = F[n].tweens, e = t.length; --e > -1; )
                        t[e]._gc && t.splice(e, 1);
                    0 === t.length && delete F[n]
                }
                if (n = z._first, (!n || n._paused) && M.autoSleep && !U._first && 1 === o._listeners.tick.length) {
                    for (; n && n._paused; )
                        n = n._next;
                    n || o.sleep()
                }
            }
        }, o.addEventListener("tick", L._updateRoot);
        var X = function(e, t, n) {
            var r, i, s = e._gsTweenID;
            if (F[s || (e._gsTweenID = s = "t" + I++)] || (F[s] = {target: e,tweens: []}), t && (r = F[s].tweens, r[i = r.length] = t, n))
                for (; --i > -1; )
                    r[i] === t && r.splice(i, 1);
            return F[s].tweens
        }, V = function(e, t, n, r) {
            var i = e.vars.onOverwrite;
            i && i(e, t, n, r), i = M.onOverwrite, i && i(e, t, n, r)
        }, $ = function(e, t, n, r, i) {
            var s, o, u, a;
            if (1 === r || r >= 4) {
                for (a = i.length, s = 0; a > s; s++)
                    if ((u = i[s]) !== t)
                        u._gc || (u._enabled(!1, !1) && (o = !0), V(u, t));
                    else if (5 === r)
                        break;
                return o
            }
            var f, c = t._startTime + l, h = [], p = 0, d = 0 === t._duration;
            for (s = i.length; --s > -1; )
                (u = i[s]) === t || u._gc || u._paused || (u._timeline !== t._timeline ? (f = f || J(t, 0, d), 0 === J(u, f, d) && (h[p++] = u)) : c >= u._startTime && u._startTime + u.totalDuration() / u._timeScale > c && ((d || !u._initted) && 2e-10 >= c - u._startTime || (h[p++] = u)));
            for (s = p; --s > -1; )
                u = h[s], 2 === r && u._kill(n, e, t) && (o = !0), (2 !== r || !u._firstPT && u._initted) && (u._enabled(!1, !1) && (o = !0), 2 !== r && V(u, t));
            return o
        }, J = function(e, t, n) {
            for (var r = e._timeline, i = r._timeScale, s = e._startTime; r._timeline; ) {
                if (s += r._startTime, i *= r._timeScale, r._paused)
                    return -100;
                r = r._timeline
            }
            return s /= i, s > t ? s - t : n && s === t || !e._initted && 2 * l > s - t ? l : (s += e.totalDuration() / e._timeScale / i) > t + l ? 0 : s - t - l
        };
        s._init = function() {
            var e, t, n, r, i, s = this.vars, o = this._overwrittenProps, u = this._duration, a = !!s.immediateRender, f = s.ease;
            if (s.startAt) {
                this._startAt && (this._startAt.render(-1, !0), this._startAt.kill()), i = {};
                for (r in s.startAt)
                    i[r] = s.startAt[r];
                if (i.overwrite = !1, i.immediateRender = !0, i.lazy = a && s.lazy !== !1, i.startAt = i.delay = null, this._startAt = M.to(this.target, 0, i), a)
                    if (this._time > 0)
                        this._startAt = null;
                    else if (0 !== u)
                        return
            } else if (s.runBackwards && 0 !== u)
                if (this._startAt)
                    this._startAt.render(-1, !0), this._startAt.kill(), this._startAt = null;
                else {
                    0 !== this._time && (a = !1), n = {};
                    for (r in s)
                        q[r] && "autoCSS" !== r || (n[r] = s[r]);
                    if (n.overwrite = 0, n.data = "isFromStart", n.lazy = a && s.lazy !== !1, n.immediateRender = a, this._startAt = M.to(this.target, 0, n), a) {
                        if (0 === this._time)
                            return
                    } else
                        this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null)
                }
            if (this._ease = f = f ? f instanceof w ? f : "function" == typeof f ? new w(f, s.easeParams) : E[f] || M.defaultEase : M.defaultEase, s.easeParams instanceof Array && f.config && (this._ease = f.config.apply(f, s.easeParams)), this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets)
                for (e = this._targets.length; --e > -1; )
                    this._initProps(this._targets[e], this._propLookup[e] = {}, this._siblings[e], o ? o[e] : null) && (t = !0);
            else
                t = this._initProps(this.target, this._propLookup, this._siblings, o);
            if (t && M._onPluginEvent("_onInitAllProps", this), o && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), s.runBackwards)
                for (n = this._firstPT; n; )
                    n.s += n.c, n.c = -n.c, n = n._next;
            this._onUpdate = s.onUpdate, this._initted = !0
        }, s._initProps = function(t, n, r, i) {
            var s, o, u, a, f, l;
            if (null == t)
                return !1;
            H[t._gsTweenID] && W(), this.vars.css || t.style && t !== e && t.nodeType && j.css && this.vars.autoCSS !== !1 && D(this.vars, t);
            for (s in this.vars) {
                if (l = this.vars[s], q[s])
                    l && (l instanceof Array || l.push && p(l)) && -1 !== l.join("").indexOf("{self}") && (this.vars[s] = l = this._swapSelfInParams(l, this));
                else if (j[s] && (a = new j[s])._onInitTween(t, this.vars[s], this)) {
                    for (this._firstPT = f = {_next: this._firstPT,t: a,p: "setRatio",s: 0,c: 1,f: !0,n: s,pg: !0,pr: a._priority}, o = a._overwriteProps.length; --o > -1; )
                        n[a._overwriteProps[o]] = this._firstPT;
                    (a._priority || a._onInitAllProps) && (u = !0), (a._onDisable || a._onEnable) && (this._notifyPluginsOfEnabled = !0)
                } else
                    this._firstPT = n[s] = f = {_next: this._firstPT,t: t,p: s,f: "function" == typeof t[s],n: s,pg: !1,pr: 0}, f.s = f.f ? t[s.indexOf("set") || "function" != typeof t["get" + s.substr(3)] ? s : "get" + s.substr(3)]() : parseFloat(t[s]), f.c = "string" == typeof l && "=" === l.charAt(1) ? parseInt(l.charAt(0) + "1", 10) * Number(l.substr(2)) : Number(l) - f.s || 0;
                f && f._next && (f._next._prev = f)
            }
            return i && this._kill(i, t) ? this._initProps(t, n, r, i) : this._overwrite > 1 && this._firstPT && r.length > 1 && $(t, this, n, this._overwrite, r) ? (this._kill(n, t), this._initProps(t, n, r, i)) : (this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration) && (H[t._gsTweenID] = !0), u)
        }, s.render = function(e, t, n) {
            var r, i, s, o, u = this._time, a = this._duration, f = this._rawPrevTime;
            if (e >= a)
                this._totalTime = this._time = a, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (r = !0, i = "onComplete"), 0 === a && (this._initted || !this.vars.lazy || n) && (this._startTime === this._timeline._duration && (e = 0), (0 === e || 0 > f || f === l) && f !== e && (n = !0, f > l && (i = "onReverseComplete")), this._rawPrevTime = o = !t || e || f === e ? e : l);
            else if (1e-7 > e)
                this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== u || 0 === a && f > 0 && f !== l) && (i = "onReverseComplete", r = this._reversed), 0 > e && (this._active = !1, 0 === a && (this._initted || !this.vars.lazy || n) && (f >= 0 && (n = !0), this._rawPrevTime = o = !t || e || f === e ? e : l)), this._initted || (n = !0);
            else if (this._totalTime = this._time = e, this._easeType) {
                var c = e / a, h = this._easeType, p = this._easePower;
                (1 === h || 3 === h && c >= .5) && (c = 1 - c), 3 === h && (c *= 2), 1 === p ? c *= c : 2 === p ? c *= c * c : 3 === p ? c *= c * c * c : 4 === p && (c *= c * c * c * c), this.ratio = 1 === h ? 1 - c : 2 === h ? c : .5 > e / a ? c / 2 : 1 - c / 2
            } else
                this.ratio = this._ease.getRatio(e / a);
            if (this._time !== u || n) {
                if (!this._initted) {
                    if (this._init(), !this._initted || this._gc)
                        return;
                    if (!n && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration))
                        return this._time = this._totalTime = u, this._rawPrevTime = f, P.push(this), this._lazy = [e, t], void 0;
                    this._time && !r ? this.ratio = this._ease.getRatio(this._time / a) : r && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
                }
                for (this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== u && e >= 0 && (this._active = !0), 0 === u && (this._startAt && (e >= 0 ? this._startAt.render(e, t, n) : i || (i = "_dummyGS")), this.vars.onStart && (0 !== this._time || 0 === a) && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || b))), s = this._firstPT; s; )
                    s.f ? s.t[s.p](s.c * this.ratio + s.s) : s.t[s.p] = s.c * this.ratio + s.s, s = s._next;
                this._onUpdate && (0 > e && this._startAt && e !== -0.0001 && this._startAt.render(e, t, n), t || (this._time !== u || r) && this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || b)), i && (!this._gc || n) && (0 > e && this._startAt && !this._onUpdate && e !== -0.0001 && this._startAt.render(e, t, n), r && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[i] && this.vars[i].apply(this.vars[i + "Scope"] || this, this.vars[i + "Params"] || b), 0 === a && this._rawPrevTime === l && o !== l && (this._rawPrevTime = 0))
            }
        }, s._kill = function(e, t, n) {
            if ("all" === e && (e = null), null != e || null != t && t !== this.target) {
                t = "string" != typeof t ? t || this._targets || this.target : M.selector(t) || t;
                var r, i, s, o, u, a, f, l, c;
                if ((p(t) || _(t)) && "number" != typeof t[0])
                    for (r = t.length; --r > -1; )
                        this._kill(e, t[r]) && (a = !0);
                else {
                    if (this._targets) {
                        for (r = this._targets.length; --r > -1; )
                            if (t === this._targets[r]) {
                                u = this._propLookup[r] || {}, this._overwrittenProps = this._overwrittenProps || [], i = this._overwrittenProps[r] = e ? this._overwrittenProps[r] || {} : "all";
                                break
                            }
                    } else {
                        if (t !== this.target)
                            return !1;
                        u = this._propLookup, i = this._overwrittenProps = e ? this._overwrittenProps || {} : "all"
                    }
                    if (u) {
                        f = e || u, l = e !== i && "all" !== i && e !== u && ("object" != typeof e || !e._tempKill);
                        for (s in f)
                            (o = u[s]) && (c || (c = []), c.push(s), o.pg && o.t._kill(f) && (a = !0), o.pg && 0 !== o.t._overwriteProps.length || (o._prev ? o._prev._next = o._next : o === this._firstPT && (this._firstPT = o._next), o._next && (o._next._prev = o._prev), o._next = o._prev = null), delete u[s]), l && (i[s] = 1);
                        !this._firstPT && this._initted && this._enabled(!1, !1), c && n && V(this, n, t, c)
                    }
                }
                return a
            }
            return this._lazy = !1, this._enabled(!1, !1)
        }, s.invalidate = function() {
            return this._notifyPluginsOfEnabled && M._onPluginEvent("_onDisable", this), this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null, this._notifyPluginsOfEnabled = this._active = this._lazy = !1, this._propLookup = this._targets ? {} : [], L.prototype.invalidate.call(this), this.vars.immediateRender && (this._time = -l, this.render(-this._delay)), this
        }, s._enabled = function(e, t) {
            if (u || o.wake(), e && this._gc) {
                var n, r = this._targets;
                if (r)
                    for (n = r.length; --n > -1; )
                        this._siblings[n] = X(r[n], this, !0);
                else
                    this._siblings = X(this.target, this, !0)
            }
            return L.prototype._enabled.call(this, e, t), this._notifyPluginsOfEnabled && this._firstPT ? M._onPluginEvent(e ? "_onEnable" : "_onDisable", this) : !1
        }, M.to = function(e, t, n) {
            return new M(e, t, n)
        }, M.from = function(e, t, n) {
            return n.runBackwards = !0, n.immediateRender = 0 != n.immediateRender, new M(e, t, n)
        }, M.fromTo = function(e, t, n, r) {
            return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, new M(e, t, r)
        }, M.delayedCall = function(e, t, n, r, i) {
            return new M(t, 0, {delay: e,onComplete: t,onCompleteParams: n,onCompleteScope: r,onReverseComplete: t,onReverseCompleteParams: n,onReverseCompleteScope: r,immediateRender: !1,useFrames: i,overwrite: 0})
        }, M.set = function(e, t) {
            return new M(e, 0, t)
        }, M.getTweensOf = function(e, t) {
            if (null == e)
                return [];
            e = "string" != typeof e ? e : M.selector(e) || e;
            var n, r, i, s;
            if ((p(e) || _(e)) && "number" != typeof e[0]) {
                for (n = e.length, r = []; --n > -1; )
                    r = r.concat(M.getTweensOf(e[n], t));
                for (n = r.length; --n > -1; )
                    for (s = r[n], i = n; --i > -1; )
                        s === r[i] && r.splice(n, 1)
            } else
                for (r = X(e).concat(), n = r.length; --n > -1; )
                    (r[n]._gc || t && !r[n].isActive()) && r.splice(n, 1);
            return r
        }, M.killTweensOf = M.killDelayedCallsTo = function(e, t, n) {
            "object" == typeof t && (n = t, t = !1);
            for (var r = M.getTweensOf(e, t), i = r.length; --i > -1; )
                r[i]._kill(n, e)
        };
        var K = g("plugins.TweenPlugin", function(e, t) {
            this._overwriteProps = (e || "").split(","), this._propName = this._overwriteProps[0], this._priority = t || 0, this._super = K.prototype
        }, !0);
        if (s = K.prototype, K.version = "1.10.1", K.API = 2, s._firstPT = null, s._addTween = function(e, t, n, r, i, s) {
            var o, u;
            return null != r && (o = "number" == typeof r || "=" !== r.charAt(1) ? Number(r) - n : parseInt(r.charAt(0) + "1", 10) * Number(r.substr(2))) ? (this._firstPT = u = {_next: this._firstPT,t: e,p: t,s: n,c: o,f: "function" == typeof e[t],n: i || t,r: s}, u._next && (u._next._prev = u), u) : void 0
        }, s.setRatio = function(e) {
            for (var t, n = this._firstPT, r = 1e-6; n; )
                t = n.c * e + n.s, n.r ? t = Math.round(t) : r > t && t > -r && (t = 0), n.f ? n.t[n.p](t) : n.t[n.p] = t, n = n._next
        }, s._kill = function(e) {
            var t, n = this._overwriteProps, r = this._firstPT;
            if (null != e[this._propName])
                this._overwriteProps = [];
            else
                for (t = n.length; --t > -1; )
                    null != e[n[t]] && n.splice(t, 1);
            for (; r; )
                null != e[r.n] && (r._next && (r._next._prev = r._prev), r._prev ? (r._prev._next = r._next, r._prev = null) : this._firstPT === r && (this._firstPT = r._next)), r = r._next;
            return !1
        }, s._roundProps = function(e, t) {
            for (var n = this._firstPT; n; )
                (e[this._propName] || null != n.n && e[n.n.split(this._propName + "_").join("")]) && (n.r = t), n = n._next
        }, M._onPluginEvent = function(e, t) {
            var n, r, i, s, o, u = t._firstPT;
            if ("_onInitAllProps" === e) {
                for (; u; ) {
                    for (o = u._next, r = i; r && r.pr > u.pr; )
                        r = r._next;
                    (u._prev = r ? r._prev : s) ? u._prev._next = u : i = u, (u._next = r) ? r._prev = u : s = u, u = o
                }
                u = t._firstPT = i
            }
            for (; u; )
                u.pg && "function" == typeof u.t[e] && u.t[e]() && (n = !0), u = u._next;
            return n
        }, K.activate = function(e) {
            for (var t = e.length; --t > -1; )
                e[t].API === K.API && (j[(new e[t])._propName] = e[t]);
            return !0
        }, m.plugin = function(e) {
            if (!(e && e.propName && e.init && e.API))
                throw "illegal plugin definition.";
            var t, n = e.propName, r = e.priority || 0, i = e.overwriteProps, s = {init: "_onInitTween",set: "setRatio",kill: "_kill",round: "_roundProps",initAll: "_onInitAllProps"}, o = g("plugins." + n.charAt(0).toUpperCase() + n.substr(1) + "Plugin", function() {
                K.call(this, n, r), this._overwriteProps = i || []
            }, e.global === !0), u = o.prototype = new K(n);
            u.constructor = o, o.API = e.API;
            for (t in s)
                "function" == typeof e[t] && (u[s[t]] = e[t]);
            return o.version = e.version, K.activate([o]), o
        }, r = e._gsQueue) {
            for (i = 0; r.length > i; i++)
                r[i]();
            for (s in d)
                d[s].func || e.console.log("GSAP encountered missing dependency: com.greensock." + s)
        }
        u = !1
    }
}("undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window, "TweenLite"), define("TweenLite", function() {
});
var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
(_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
    _gsScope._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function(e, t, n) {
        var r = function(t) {
            e.call(this, t), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._dirty = !0
        }, i = 1e-10, s = [], o = t._internals, u = o.lazyTweens, a = o.lazyRender, f = new n(null, null, 1, 0), l = r.prototype = new e;
        return l.constructor = r, l.kill()._gc = !1, r.version = "1.14.1", l.invalidate = function() {
            return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), e.prototype.invalidate.call(this)
        }, l.addCallback = function(e, n, r, i) {
            return this.add(t.delayedCall(0, e, r, i), n)
        }, l.removeCallback = function(e, t) {
            if (e)
                if (null == t)
                    this._kill(null, e);
                else
                    for (var n = this.getTweensOf(e, !1), r = n.length, i = this._parseTimeOrLabel(t); --r > -1; )
                        n[r]._startTime === i && n[r]._enabled(!1, !1);
            return this
        }, l.tweenTo = function(e, n) {
            n = n || {};
            var r, i, o, u = {ease: f,overwrite: n.delay ? 2 : 1,useFrames: this.usesFrames(),immediateRender: !1};
            for (i in n)
                u[i] = n[i];
            return u.time = this._parseTimeOrLabel(e), r = Math.abs(Number(u.time) - this._time) / this._timeScale || .001, o = new t(this, r, u), u.onStart = function() {
                o.target.paused(!0), o.vars.time !== o.target.time() && r === o.duration() && o.duration(Math.abs(o.vars.time - o.target.time()) / o.target._timeScale), n.onStart && n.onStart.apply(n.onStartScope || o, n.onStartParams || s)
            }, o
        }, l.tweenFromTo = function(e, t, n) {
            n = n || {}, e = this._parseTimeOrLabel(e), n.startAt = {onComplete: this.seek,onCompleteParams: [e],onCompleteScope: this}, n.immediateRender = n.immediateRender !== !1;
            var r = this.tweenTo(t, n);
            return r.duration(Math.abs(r.vars.time - e) / this._timeScale || .001)
        }, l.render = function(e, t, n) {
            this._gc && this._enabled(!0, !1);
            var r, o, f, l, c, p, d = this._dirty ? this.totalDuration() : this._totalDuration, v = this._duration, m = this._time, g = this._totalTime, y = this._startTime, b = this._timeScale, w = this._rawPrevTime, E = this._paused, S = this._cycle;
            if (e >= d ? (this._locked || (this._totalTime = d, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (o = !0, l = "onComplete", 0 === this._duration && (0 === e || 0 > w || w === i) && w !== e && this._first && (c = !0, w > i && (l = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, this._yoyo && 0 !== (1 & this._cycle) ? this._time = e = 0 : (this._time = v, e = v + 1e-4)) : 1e-7 > e ? (this._locked || (this._totalTime = this._cycle = 0), this._time = 0, (0 !== m || 0 === v && w !== i && (w > 0 || 0 > e && w >= 0) && !this._locked) && (l = "onReverseComplete", o = this._reversed), 0 > e ? (this._active = !1, w >= 0 && this._first && (c = !0), this._rawPrevTime = e) : (this._rawPrevTime = v || !t || e || this._rawPrevTime === e ? e : i, e = 0, this._initted || (c = !0))) : (0 === v && 0 > w && (c = !0), this._time = this._rawPrevTime = e, this._locked || (this._totalTime = e, 0 !== this._repeat && (p = v + this._repeatDelay, this._cycle = this._totalTime / p >> 0, 0 !== this._cycle && this._cycle === this._totalTime / p && this._cycle--, this._time = this._totalTime - this._cycle * p, this._yoyo && 0 !== (1 & this._cycle) && (this._time = v - this._time), this._time > v ? (this._time = v, e = v + 1e-4) : 0 > this._time ? this._time = e = 0 : e = this._time))), this._cycle !== S && !this._locked) {
                var x = this._yoyo && 0 !== (1 & S), T = x === (this._yoyo && 0 !== (1 & this._cycle)), N = this._totalTime, C = this._cycle, k = this._rawPrevTime, L = this._time;
                if (this._totalTime = S * v, S > this._cycle ? x = !x : this._totalTime += v, this._time = m, this._rawPrevTime = 0 === v ? w - 1e-4 : w, this._cycle = S, this._locked = !0, m = x ? 0 : v, this.render(m, t, 0 === v), t || this._gc || this.vars.onRepeat && this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || s), T && (m = x ? v + 1e-4 : -0.0001, this.render(m, !0, !1)), this._locked = !1, this._paused && !E)
                    return;
                this._time = L, this._totalTime = N, this._cycle = C, this._rawPrevTime = k
            }
            if (!(this._time !== m && this._first || n || c))
                return g !== this._totalTime && this._onUpdate && (t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || s)), void 0;
            if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== g && e > 0 && (this._active = !0), 0 === g && this.vars.onStart && 0 !== this._totalTime && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || s)), this._time >= m)
                for (r = this._first; r && (f = r._next, !this._paused || E); )
                    (r._active || r._startTime <= this._time && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = f;
            else
                for (r = this._last; r && (f = r._prev, !this._paused || E); )
                    (r._active || m >= r._startTime && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = f;
            this._onUpdate && (t || (u.length && a(), this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || s))), l && (this._locked || this._gc || (y === this._startTime || b !== this._timeScale) && (0 === this._time || d >= this.totalDuration()) && (o && (u.length && a(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[l] && this.vars[l].apply(this.vars[l + "Scope"] || this, this.vars[l + "Params"] || s)))
        }, l.getActive = function(e, t, n) {
            null == e && (e = !0), null == t && (t = !0), null == n && (n = !1);
            var r, i, s = [], o = this.getChildren(e, t, n), u = 0, a = o.length;
            for (r = 0; a > r; r++)
                i = o[r], i.isActive() && (s[u++] = i);
            return s
        }, l.getLabelAfter = function(e) {
            e || 0 !== e && (e = this._time);
            var t, n = this.getLabelsArray(), r = n.length;
            for (t = 0; r > t; t++)
                if (n[t].time > e)
                    return n[t].name;
            return null
        }, l.getLabelBefore = function(e) {
            null == e && (e = this._time);
            for (var t = this.getLabelsArray(), n = t.length; --n > -1; )
                if (e > t[n].time)
                    return t[n].name;
            return null
        }, l.getLabelsArray = function() {
            var e, t = [], n = 0;
            for (e in this._labels)
                t[n++] = {time: this._labels[e],name: e};
            return t.sort(function(e, t) {
                return e.time - t.time
            }), t
        }, l.progress = function(e, t) {
            return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), t) : this._time / this.duration()
        }, l.totalProgress = function(e, t) {
            return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this._totalTime / this.totalDuration()
        }, l.totalDuration = function(t) {
            return arguments.length ? -1 === this._repeat ? this : this.duration((t - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (e.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration)
        }, l.time = function(e, t) {
            return arguments.length ? (this._dirty && this.totalDuration(), e > this._duration && (e = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? e = this._duration - e + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(e, t)) : this._time
        }, l.repeat = function(e) {
            return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
        }, l.repeatDelay = function(e) {
            return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
        }, l.yoyo = function(e) {
            return arguments.length ? (this._yoyo = e, this) : this._yoyo
        }, l.currentLabel = function(e) {
            return arguments.length ? this.seek(e, !0) : this.getLabelBefore(this._time + 1e-8)
        }, r
    }, !0), _gsScope._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, n) {
        var r = function(e) {
            t.call(this, e), this._labels = {}, this.autoRemoveChildren = this.vars.autoRemoveChildren === !0, this.smoothChildTiming = this.vars.smoothChildTiming === !0, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
            var n, r, i = this.vars;
            for (r in i)
                n = i[r], u(n) && -1 !== n.join("").indexOf("{self}") && (i[r] = this._swapSelfInParams(n));
            u(i.tweens) && this.add(i.tweens, 0, i.align, i.stagger)
        }, i = 1e-10, s = n._internals, o = s.isSelector, u = s.isArray, a = s.lazyTweens, f = s.lazyRender, l = [], c = _gsScope._gsDefine.globals, h = function(e) {
            var t, n = {};
            for (t in e)
                n[t] = e[t];
            return n
        }, p = function(e, t, n, r) {
            var i = e._timeline._totalTime;
            (t || !this._forcingPlayhead) && (e._timeline.pause(e._startTime), t && t.apply(r || e._timeline, n || l), this._forcingPlayhead && e._timeline.seek(i))
        }, d = function(e) {
            var t, n = [], r = e.length;
            for (t = 0; t !== r; n.push(e[t++]))
                ;
            return n
        }, v = r.prototype = new t;
        return r.version = "1.14.1", v.constructor = r, v.kill()._gc = v._forcingPlayhead = !1, v.to = function(e, t, r, i) {
            var s = r.repeat && c.TweenMax || n;
            return t ? this.add(new s(e, t, r), i) : this.set(e, r, i)
        }, v.from = function(e, t, r, i) {
            return this.add((r.repeat && c.TweenMax || n).from(e, t, r), i)
        }, v.fromTo = function(e, t, r, i, s) {
            var o = i.repeat && c.TweenMax || n;
            return t ? this.add(o.fromTo(e, t, r, i), s) : this.set(e, i, s)
        }, v.staggerTo = function(e, t, i, s, u, a, f, l) {
            var c, p = new r({onComplete: a,onCompleteParams: f,onCompleteScope: l,smoothChildTiming: this.smoothChildTiming});
            for ("string" == typeof e && (e = n.selector(e) || e), o(e) && (e = d(e)), s = s || 0, 0 > s && (e = d(e), e.reverse(), s *= -1), c = 0; e.length > c; c++)
                i.startAt && (i.startAt = h(i.startAt)), p.to(e[c], t, h(i), c * s);
            return this.add(p, u)
        }, v.staggerFrom = function(e, t, n, r, i, s, o, u) {
            return n.immediateRender = 0 != n.immediateRender, n.runBackwards = !0, this.staggerTo(e, t, n, r, i, s, o, u)
        }, v.staggerFromTo = function(e, t, n, r, i, s, o, u, a) {
            return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, this.staggerTo(e, t, r, i, s, o, u, a)
        }, v.call = function(e, t, r, i) {
            return this.add(n.delayedCall(0, e, t, r), i)
        }, v.set = function(e, t, r) {
            return r = this._parseTimeOrLabel(r, 0, !0), null == t.immediateRender && (t.immediateRender = r === this._time && !this._paused), this.add(new n(e, 0, t), r)
        }, r.exportRoot = function(e, t) {
            e = e || {}, null == e.smoothChildTiming && (e.smoothChildTiming = !0);
            var i, s, o = new r(e), u = o._timeline;
            for (null == t && (t = !0), u._remove(o, !0), o._startTime = 0, o._rawPrevTime = o._time = o._totalTime = u._time, i = u._first; i; )
                s = i._next, t && i instanceof n && i.target === i.vars.onComplete || o.add(i, i._startTime - i._delay), i = s;
            return u.add(o, 0), o
        }, v.add = function(i, s, o, a) {
            var f, l, c, h, p, d;
            if ("number" != typeof s && (s = this._parseTimeOrLabel(s, 0, !0, i)), !(i instanceof e)) {
                if (i instanceof Array || i && i.push && u(i)) {
                    for (o = o || "normal", a = a || 0, f = s, l = i.length, c = 0; l > c; c++)
                        u(h = i[c]) && (h = new r({tweens: h})), this.add(h, f), "string" != typeof h && "function" != typeof h && ("sequence" === o ? f = h._startTime + h.totalDuration() / h._timeScale : "start" === o && (h._startTime -= h.delay())), f += a;
                    return this._uncache(!0)
                }
                if ("string" == typeof i)
                    return this.addLabel(i, s);
                if ("function" != typeof i)
                    throw "Cannot add " + i + " into the timeline; it is not a tween, timeline, function, or string.";
                i = n.delayedCall(0, i)
            }
            if (t.prototype.add.call(this, i, s), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
                for (p = this, d = p.rawTime() > i._startTime; p._timeline; )
                    d && p._timeline.smoothChildTiming ? p.totalTime(p._totalTime, !0) : p._gc && p._enabled(!0, !1), p = p._timeline;
            return this
        }, v.remove = function(t) {
            if (t instanceof e)
                return this._remove(t, !1);
            if (t instanceof Array || t && t.push && u(t)) {
                for (var n = t.length; --n > -1; )
                    this.remove(t[n]);
                return this
            }
            return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t)
        }, v._remove = function(e, n) {
            t.prototype._remove.call(this, e, n);
            var r = this._last;
            return r ? this._time > r._startTime + r._totalDuration / r._timeScale && (this._time = this.duration(), this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this
        }, v.append = function(e, t) {
            return this.add(e, this._parseTimeOrLabel(null, t, !0, e))
        }, v.insert = v.insertMultiple = function(e, t, n, r) {
            return this.add(e, t || 0, n, r)
        }, v.appendMultiple = function(e, t, n, r) {
            return this.add(e, this._parseTimeOrLabel(null, t, !0, e), n, r)
        }, v.addLabel = function(e, t) {
            return this._labels[e] = this._parseTimeOrLabel(t), this
        }, v.addPause = function(e, t, n, r) {
            return this.call(p, ["{self}", t, n, r], this, e)
        }, v.removeLabel = function(e) {
            return delete this._labels[e], this
        }, v.getLabelTime = function(e) {
            return null != this._labels[e] ? this._labels[e] : -1
        }, v._parseTimeOrLabel = function(t, n, r, i) {
            var s;
            if (i instanceof e && i.timeline === this)
                this.remove(i);
            else if (i && (i instanceof Array || i.push && u(i)))
                for (s = i.length; --s > -1; )
                    i[s] instanceof e && i[s].timeline === this && this.remove(i[s]);
            if ("string" == typeof n)
                return this._parseTimeOrLabel(n, r && "number" == typeof t && null == this._labels[n] ? t - this.duration() : 0, r);
            if (n = n || 0, "string" != typeof t || !isNaN(t) && null == this._labels[t])
                null == t && (t = this.duration());
            else {
                if (s = t.indexOf("="), -1 === s)
                    return null == this._labels[t] ? r ? this._labels[t] = this.duration() + n : n : this._labels[t] + n;
                n = parseInt(t.charAt(s - 1) + "1", 10) * Number(t.substr(s + 1)), t = s > 1 ? this._parseTimeOrLabel(t.substr(0, s - 1), 0, r) : this.duration()
            }
            return Number(t) + n
        }, v.seek = function(e, t) {
            return this.totalTime("number" == typeof e ? e : this._parseTimeOrLabel(e), t !== !1)
        }, v.stop = function() {
            return this.paused(!0)
        }, v.gotoAndPlay = function(e, t) {
            return this.play(e, t)
        }, v.gotoAndStop = function(e, t) {
            return this.pause(e, t)
        }, v.render = function(e, t, n) {
            this._gc && this._enabled(!0, !1);
            var r, s, o, u, c, h = this._dirty ? this.totalDuration() : this._totalDuration, p = this._time, d = this._startTime, v = this._timeScale, m = this._paused;
            if (e >= h ? (this._totalTime = this._time = h, this._reversed || this._hasPausedChild() || (s = !0, u = "onComplete", 0 === this._duration && (0 === e || 0 > this._rawPrevTime || this._rawPrevTime === i) && this._rawPrevTime !== e && this._first && (c = !0, this._rawPrevTime > i && (u = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, e = h + 1e-4) : 1e-7 > e ? (this._totalTime = this._time = 0, (0 !== p || 0 === this._duration && this._rawPrevTime !== i && (this._rawPrevTime > 0 || 0 > e && this._rawPrevTime >= 0)) && (u = "onReverseComplete", s = this._reversed), 0 > e ? (this._active = !1, this._rawPrevTime >= 0 && this._first && (c = !0), this._rawPrevTime = e) : (this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, e = 0, this._initted || (c = !0))) : this._totalTime = this._time = this._rawPrevTime = e, this._time !== p && this._first || n || c) {
                if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== p && e > 0 && (this._active = !0), 0 === p && this.vars.onStart && 0 !== this._time && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || l)), this._time >= p)
                    for (r = this._first; r && (o = r._next, !this._paused || m); )
                        (r._active || r._startTime <= this._time && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = o;
                else
                    for (r = this._last; r && (o = r._prev, !this._paused || m); )
                        (r._active || p >= r._startTime && !r._paused && !r._gc) && (r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = o;
                this._onUpdate && (t || (a.length && f(), this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || l))), u && (this._gc || (d === this._startTime || v !== this._timeScale) && (0 === this._time || h >= this.totalDuration()) && (s && (a.length && f(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[u] && this.vars[u].apply(this.vars[u + "Scope"] || this, this.vars[u + "Params"] || l)))
            }
        }, v._hasPausedChild = function() {
            for (var e = this._first; e; ) {
                if (e._paused || e instanceof r && e._hasPausedChild())
                    return !0;
                e = e._next
            }
            return !1
        }, v.getChildren = function(e, t, r, i) {
            i = i || -9999999999;
            for (var s = [], o = this._first, u = 0; o; )
                i > o._startTime || (o instanceof n ? t !== !1 && (s[u++] = o) : (r !== !1 && (s[u++] = o), e !== !1 && (s = s.concat(o.getChildren(!0, t, r)), u = s.length))), o = o._next;
            return s
        }, v.getTweensOf = function(e, t) {
            var r, i, s = this._gc, o = [], u = 0;
            for (s && this._enabled(!0, !0), r = n.getTweensOf(e), i = r.length; --i > -1; )
                (r[i].timeline === this || t && this._contains(r[i])) && (o[u++] = r[i]);
            return s && this._enabled(!1, !0), o
        }, v.recent = function() {
            return this._recent
        }, v._contains = function(e) {
            for (var t = e.timeline; t; ) {
                if (t === this)
                    return !0;
                t = t.timeline
            }
            return !1
        }, v.shiftChildren = function(e, t, n) {
            n = n || 0;
            for (var r, i = this._first, s = this._labels; i; )
                i._startTime >= n && (i._startTime += e), i = i._next;
            if (t)
                for (r in s)
                    s[r] >= n && (s[r] += e);
            return this._uncache(!0)
        }, v._kill = function(e, t) {
            if (!e && !t)
                return this._enabled(!1, !1);
            for (var n = t ? this.getTweensOf(t) : this.getChildren(!0, !0, !1), r = n.length, i = !1; --r > -1; )
                n[r]._kill(e, t) && (i = !0);
            return i
        }, v.clear = function(e) {
            var t = this.getChildren(!1, !0, !0), n = t.length;
            for (this._time = this._totalTime = 0; --n > -1; )
                t[n]._enabled(!1, !1);
            return e !== !1 && (this._labels = {}), this._uncache(!0)
        }, v.invalidate = function() {
            for (var t = this._first; t; )
                t.invalidate(), t = t._next;
            return e.prototype.invalidate.call(this)
        }, v._enabled = function(e, n) {
            if (e === this._gc)
                for (var r = this._first; r; )
                    r._enabled(e, !0), r = r._next;
            return t.prototype._enabled.call(this, e, n)
        }, v.totalTime = function() {
            this._forcingPlayhead = !0;
            var t = e.prototype.totalTime.apply(this, arguments);
            return this._forcingPlayhead = !1, t
        }, v.duration = function(e) {
            return arguments.length ? (0 !== this.duration() && 0 !== e && this.timeScale(this._duration / e), this) : (this._dirty && this.totalDuration(), this._duration)
        }, v.totalDuration = function(e) {
            if (!arguments.length) {
                if (this._dirty) {
                    for (var t, n, r = 0, i = this._last, s = 999999999999; i; )
                        t = i._prev, i._dirty && i.totalDuration(), i._startTime > s && this._sortChildren && !i._paused ? this.add(i, i._startTime - i._delay) : s = i._startTime, 0 > i._startTime && !i._paused && (r -= i._startTime, this._timeline.smoothChildTiming && (this._startTime += i._startTime / this._timeScale), this.shiftChildren(-i._startTime, !1, -9999999999), s = 0), n = i._startTime + i._totalDuration / i._timeScale, n > r && (r = n), i = t;
                    this._duration = this._totalDuration = r, this._dirty = !1
                }
                return this._totalDuration
            }
            return 0 !== this.totalDuration() && 0 !== e && this.timeScale(this._totalDuration / e), this
        }, v.usesFrames = function() {
            for (var t = this._timeline; t._timeline; )
                t = t._timeline;
            return t === e._rootFramesTimeline
        }, v.rawTime = function() {
            return this._paused ? this._totalTime : (this._timeline.rawTime() - this._startTime) * this._timeScale
        }, r
    }, !0)
}), _gsScope._gsDefine && _gsScope._gsQueue.pop()(), function(e) {
    var t = function() {
        return (_gsScope.GreenSockGlobals || _gsScope)[e]
    };
    "function" == typeof define && define.amd ? define("TimelineMax", ["TweenLite"], t) : "undefined" != typeof module && module.exports && (require("./TweenLite.js"), module.exports = t())
}("TimelineMax"), function(e) {
    var t = e.define, n, r;
    if (typeof t != "function" || !t.amd)
        t = function(t, n, r) {
            for (var i = 0, s; i < n.length; i++)
                s = n[i], s === "jquery" && (s = "jQuery"), n[i] = e[s];
            e[t] = r.apply(e, n)
        };
    t("ScrollMagic", ["jquery", "TweenMax", "TimelineMax"], function(e, t, u) {
        return n = function(t) {
            var n = "ScrollMagic", u = {container: window,vertical: !0,globalSceneOptions: {},loglevel: 2,refreshInterval: 100}, l = this, c = e.extend({}, u, t), h = [], p = !1, d = 0, v = "PAUSED", m = !0, g = 0, y = !0, b, w, E = function() {
                l.version = l.constructor.version, e.each(c, function(e, t) {
                    u.hasOwnProperty(e) || (k(2, 'WARNING: Unknown option "' + e + '"'), delete c[e])
                }), c.container = e(c.container).first();
                if (c.container.length === 0)
                    throw k(1, "ERROR creating object " + n + ": No valid scroll container supplied"), n + " init failed.";
                m = !e.contains(document, c.container.get(0)), m || c.container.on("resize", function(e) {
                    e.stopPropagation()
                }), g = c.vertical ? c.container.height() : c.container.width(), c.container.on("scroll resize", N), c.refreshInterval = parseInt(c.refreshInterval), c.refreshInterval > 0 && (w = window.setInterval(C, c.refreshInterval)), b = a(T), k(3, "added new " + n + " controller (v" + l.version + ")")
            }, S = function() {
                return c.vertical ? c.container.scrollTop() : c.container.scrollLeft()
            }, x = function(e) {
                c.vertical ? c.container.scrollTop(e) : c.container.scrollLeft(e)
            }, T = function() {
                b = a(T);
                if (y && p) {
                    var t = e.isArray(p) ? p : h.slice(0), n = d;
                    d = l.scrollPos();
                    var r = d - n;
                    v = r === 0 ? "PAUSED" : r > 0 ? "FORWARD" : "REVERSE", r < 0 && t.reverse(), e.each(t, function(e, n) {
                        k(3, "updating Scene " + (e + 1) + "/" + t.length + " (" + h.length + " total)"), n.update(!0)
                    }), t.length === 0 && c.loglevel >= 3 && k(3, "updating 0 Scenes (nothing added to controller)"), p = !1
                }
            }, N = function(e) {
                e.type == "resize" && (g = c.vertical ? c.container.height() : c.container.width()), p = !0
            }, C = function() {
                m || g != (c.vertical ? c.container.height() : c.container.width()) && c.container.trigger("resize"), e.each(h, function(e, t) {
                    t.refresh()
                })
            }, k = function(e, t) {
                if (c.loglevel >= e) {
                    var r = "(" + n + ") ->", s = Array.prototype.splice.call(arguments, 1);
                    s.unshift(e, r), i.apply(window, s)
                }
            }, L = function(e) {
                if (e.length <= 1)
                    return e;
                var t = e.slice(0);
                return t.sort(function(e, t) {
                    return e.scrollOffset() > t.scrollOffset() ? 1 : -1
                }), t
            };
            return this.addScene = function(t) {
                return e.isArray(t) ? e.each(t, function(e, t) {
                    l.addScene(t)
                }) : t instanceof r ? t.parent() != l ? t.addTo(l) : e.inArray(t, h) < 0 && (h.push(t), h = L(h), t.on("shift." + n + "_sort", function() {
                    h = L(h)
                }), e.each(c.globalSceneOptions, function(e, n) {
                    t[e] && t[e].call(t, n)
                }), k(3, "added Scene (" + h.length + " total)")) : k(1, "ERROR: invalid argument supplied for '.addScene()'"), l
            }, this.removeScene = function(t) {
                if (e.isArray(t))
                    e.each(t, function(e, t) {
                        l.removeScene(t)
                    });
                else {
                    var r = e.inArray(t, h);
                    r > -1 && (t.off("shift." + n + "_sort"), h.splice(r, 1), t.remove(), k(3, "removed Scene (" + h.length + " total)"))
                }
                return l
            }, this.updateScene = function(t, n) {
                return e.isArray(t) ? e.each(t, function(e, t) {
                    l.updateScene(t, n)
                }) : n ? t.update(!0) : (e.isArray(p) || (p = []), e.inArray(t, p) == -1 && p.push(t), p = L(p)), l
            }, this.update = function(e) {
                return N({type: "resize"}), e && T(), l
            }, this.scrollTo = function(t) {
                if (t instanceof r)
                    t.parent() === l ? l.scrollTo(t.scrollOffset()) : k(2, "scrollTo(): The supplied scene does not belong to this controller. Scroll cancelled.", t);
                else if (e.type(t) === "string" || o(t) || t instanceof e) {
                    var n = e(t).first();
                    if (n[0]) {
                        var i = c.vertical ? "top" : "left", u = s(c.container), a = s(n);
                        m || (u[i] -= l.scrollPos()), l.scrollTo(a[i] - u[i])
                    } else
                        k(2, "scrollTo(): The supplied element could not be found. Scroll cancelled.", t)
                } else
                    e.isFunction(t) ? x = t : x.call(c.container[0], t);
                return l
            }, this.scrollPos = function(t) {
                return arguments.length ? (e.isFunction(t) ? S = t : k(2, "Provided value for method 'scrollPos' is not a function. To change the current scroll position use 'scrollTo()'."), l) : S.call(l)
            }, this.info = function(e) {
                var t = {size: g,vertical: c.vertical,scrollPos: d,scrollDirection: v,container: c.container,isDocument: m};
                if (!arguments.length)
                    return t;
                if (t[e] !== undefined)
                    return t[e];
                k(1, 'ERROR: option "' + e + '" is not available');
                return
            }, this.loglevel = function(e) {
                return arguments.length ? (c.loglevel != e && (c.loglevel = e), l) : c.loglevel
            }, this.enabled = function(e) {
                return arguments.length ? (y != e && (y = !!e, l.updateScene(h, !0)), l) : y
            }, this.destroy = function(e) {
                window.clearTimeout(w);
                var t = h.length;
                while (t--)
                    h[t].destroy(e);
                return c.container.off("scroll resize", N), f(b), k(3, "destroyed " + n + " (reset: " + (e ? "true" : "false") + ")"), null
            }, E(), l
        }, n.version = "1.2.2", n
    }), t("ScrollScene", ["jquery", "TweenMax", "TimelineMax"], function(e, t, o) {
        return r = function(t) {
            var r = {onCenter: .5,onEnter: 1,onLeave: 0}, a = "ScrollScene", f = {duration: 0,offset: 0,triggerElement: null,triggerHook: "onCenter",reverse: !0,tweenChanges: !1,loglevel: 2}, l = this, c = e.extend({}, f, t), h = "BEFORE", p = 0, d = {start: 0,end: 0}, v = 0, m = !0, g, y, b, w, E, S, x, T = {unknownOptionSupplied: function() {
                    e.each(c, function(e, t) {
                        f.hasOwnProperty(e) || (C(2, 'WARNING: Unknown option "' + e + '"'), delete c[e])
                    })
                },duration: function() {
                    if (e.isFunction(c.duration)) {
                        g = c.duration;
                        try {
                            c.duration = parseFloat(g())
                        } catch (t) {
                            C(1, 'ERROR: Invalid return value of supplied function for option "duration":', c.duration), g = undefined, c.duration = f.duration
                        }
                    } else {
                        c.duration = parseFloat(c.duration);
                        if (!e.isNumeric(c.duration) || c.duration < 0)
                            C(1, 'ERROR: Invalid value for option "duration":', c.duration), c.duration = f.duration
                    }
                },offset: function() {
                    c.offset = parseFloat(c.offset), e.isNumeric(c.offset) || (C(1, 'ERROR: Invalid value for option "offset":', c.offset), c.offset = f.offset)
                },triggerElement: function() {
                    c.triggerElement !== null && e(c.triggerElement).length === 0 && (C(1, 'ERROR: Element defined in option "triggerElement" was not found:', c.triggerElement), c.triggerElement = f.triggerElement)
                },triggerHook: function() {
                    c.triggerHook in r || (e.isNumeric(c.triggerHook) ? c.triggerHook = Math.max(0, Math.min(parseFloat(c.triggerHook), 1)) : (C(1, 'ERROR: Invalid value for option "triggerHook": ', c.triggerHook), c.triggerHook = f.triggerHook))
                },reverse: function() {
                    c.reverse = !!c.reverse
                },tweenChanges: function() {
                    c.tweenChanges = !!c.tweenChanges
                },loglevel: function() {
                    c.loglevel = parseInt(c.loglevel);
                    if (!e.isNumeric(c.loglevel) || c.loglevel < 0 || c.loglevel > 3) {
                        var t = c.loglevel;
                        c.loglevel = f.loglevel, C(1, 'ERROR: Invalid value for option "loglevel":', t)
                    }
                }}, N = function() {
                k(), l.on("change.internal", function(e) {
                    e.what !== "loglevel" && e.what !== "tweenChanges" && (e.what === "triggerElement" ? M() : e.what === "reverse" && l.update())
                }).on("shift.internal", function(e) {
                    A(), l.update(), (h === "AFTER" && e.reason === "duration" || h === "DURING" && c.duration === 0) && D()
                }).on("progress.internal", function(e) {
                    _(), D()
                }).on("destroy", function(e) {
                    e.preventDefault()
                })
            }, C = function(e, t) {
                if (c.loglevel >= e) {
                    var n = "(" + a + ") ->", r = Array.prototype.splice.call(arguments, 1);
                    r.unshift(e, n), i.apply(window, r)
                }
            }, k = function(t) {
                if (!arguments.length) {
                    t = [];
                    for (var n in T)
                        t.push(n)
                } else
                    e.isArray(t) || (t = [t]);
                e.each(t, function(e, t) {
                    T[t] && T[t]()
                })
            }, L = function(e, t) {
                var n = !1, r = c[e];
                return c[e] != t && (c[e] = t, k(e), n = r != c[e]), n
            }, A = function() {
                d = {start: v + c.offset}, y && c.triggerElement && (d.start -= y.info("size") * l.triggerHook()), d.end = d.start + c.duration
            }, O = function(e) {
                if (g) {
                    var t = "duration";
                    L(t, g.call(l)) && !e && (l.trigger("change", {what: t,newval: c[t]}), l.trigger("shift", {reason: t}))
                }
            }, M = function(t) {
                var n = 0;
                if (y && c.triggerElement) {
                    var r = e(c.triggerElement).first(), i = y.info(), o = s(i.container), u = i.vertical ? "top" : "left";
                    while (r.parent().data("ScrollMagicPinSpacer"))
                        r = r.parent();
                    var a = s(r);
                    i.isDocument || (o[u] -= y.scrollPos()), n = a[u] - o[u]
                }
                var f = n != v;
                v = n, f && !t && l.trigger("shift", {reason: "triggerElementPosition"})
            }, _ = function(e) {
                if (b) {
                    var t = e >= 0 && e <= 1 ? e : p;
                    if (b.repeat() === -1)
                        if (h === "DURING" && b.paused())
                            b.play();
                        else {
                            if (h === "DURING" || !!b.paused())
                                return !1;
                            b.pause()
                        }
                    else {
                        if (t == b.progress())
                            return !1;
                        c.duration === 0 ? h === "DURING" ? b.play() : b.reverse() : c.tweenChanges ? b.tweenTo(t * b.duration()) : b.progress(t).pause()
                    }
                    return !0
                }
                return !1
            }, D = function(e) {
                if (w && y) {
                    var t = y.info();
                    if (!e && h === "DURING") {
                        w.css("position") != "fixed" && (w.css("position", "fixed"), P(), w.addClass(E.pinnedClass));
                        var n = s(E.spacer, !0), r = c.reverse || c.duration === 0 ? t.scrollPos - d.start : Math.round(p * c.duration * 10) / 10;
                        n.top -= parseFloat(E.spacer.css("margin-top")), n[t.vertical ? "top" : "left"] += r, w.css({top: n.top,left: n.left})
                    } else {
                        var i = {position: E.inFlow ? "relative" : "absolute",top: 0,left: 0}, o = w.css("position") != i.position;
                        E.pushFollowers ? c.duration > 0 && (h === "AFTER" && parseFloat(E.spacer.css("padding-top")) === 0 ? o = !0 : h === "BEFORE" && parseFloat(E.spacer.css("padding-bottom")) === 0 && (o = !0)) : i[t.vertical ? "top" : "left"] = c.duration * p, w.css(i), o && (w.removeClass(E.pinnedClass), P())
                    }
                }
            }, P = function() {
                if (w && y && E.inFlow) {
                    var t = h === "AFTER", n = h === "BEFORE", r = h === "DURING", i = w.css("position") == "fixed", s = y.info("vertical"), o = E.spacer.children().first(), a = u(E.spacer.css("display")), f = {};
                    a ? (f["margin-top"] = n || r && i ? w.css("margin-top") : "auto", f["margin-bottom"] = t || r && i ? w.css("margin-bottom") : "auto") : f["margin-top"] = f["margin-bottom"] = "auto", E.relSize.width || E.relSize.autoFullWidth ? i ? e(window).width() == E.spacer.parent().width() ? w.css("width", E.relSize.autoFullWidth ? "100%" : "inherit") : w.css("width", E.spacer.width()) : w.css("width", "100%") : (f["min-width"] = o.outerWidth(!o.is(w)), f.width = i ? f["min-width"] : "auto"), E.relSize.height ? i ? e(window).height() == E.spacer.parent().height() ? w.css("height", "inherit") : w.css("height", E.spacer.height()) : w.css("height", "100%") : (f["min-height"] = o.outerHeight(!a), f.height = i ? f["min-height"] : "auto"), E.pushFollowers && (f["padding" + (s ? "Top" : "Left")] = c.duration * p, f["padding" + (s ? "Bottom" : "Right")] = c.duration * (1 - p)), E.spacer.css(f)
                }
            }, H = function() {
                y && w && h === "DURING" && !y.info("isDocument") && D()
            }, B = function() {
                y && w && h === "DURING" && ((E.relSize.width || E.relSize.autoFullWidth) && e(window).width() != E.spacer.parent().width() || E.relSize.height && e(window).height() != E.spacer.parent().height()) && P()
            }, j = function(e) {
                y && w && h === "DURING" && !y.info("isDocument") && (e.preventDefault(), y.scrollTo(y.info("scrollPos") - (e.originalEvent.wheelDelta / 3 || -e.originalEvent.detail * 30)))
            };
            return this.parent = function() {
                return y
            }, this.duration = function(t) {
                var n = "duration";
                return arguments.length ? (e.isFunction(t) || (g = undefined), L(n, t) && (l.trigger("change", {what: n,newval: c[n]}), l.trigger("shift", {reason: n})), l) : c[n]
            }, this.offset = function(e) {
                var t = "offset";
                return arguments.length ? (L(t, e) && (l.trigger("change", {what: t,newval: c[t]}), l.trigger("shift", {reason: t})), l) : c[t]
            }, this.triggerElement = function(e) {
                var t = "triggerElement";
                return arguments.length ? (L(t, e) && l.trigger("change", {what: t,newval: c[t]}), l) : c[t]
            }, this.triggerHook = function(t) {
                var n = "triggerHook";
                return arguments.length ? (L(n, t) && (l.trigger("change", {what: n,newval: c[n]}), l.trigger("shift", {reason: n})), l) : e.isNumeric(c[n]) ? c[n] : r[c[n]]
            }, this.reverse = function(e) {
                var t = "reverse";
                return arguments.length ? (L(t, e) && l.trigger("change", {what: t,newval: c[t]}), l) : c[t]
            }, this.tweenChanges = function(e) {
                var t = "tweenChanges";
                return arguments.length ? (L(t, e) && l.trigger("change", {what: t,newval: c[t]}), l) : c[t]
            }, this.loglevel = function(e) {
                var t = "loglevel";
                return arguments.length ? (L(t, e) && l.trigger("change", {what: t,newval: c[t]}), l) : c[t]
            }, this.state = function() {
                return h
            }, this.triggerPosition = function() {
                var e = c.offset;
                return y && (c.triggerElement ? e += v : e += y.info("size") * l.triggerHook()), e
            }, this.triggerOffset = function() {
                return l.triggerPosition()
            }, this.scrollOffset = function() {
                return d.start
            }, this.update = function(e) {
                if (y)
                    if (e)
                        if (y.enabled() && m) {
                            var t = y.info("scrollPos"), n;
                            c.duration > 0 ? n = (t - d.start) / (d.end - d.start) : n = t >= d.start ? 1 : 0, l.trigger("update", {startPos: d.start,endPos: d.end,scrollPos: t}), l.progress(n)
                        } else
                            w && h === "DURING" && D(!0);
                    else
                        y.updateScene(l, !1);
                return l
            }, this.refresh = function() {
                return O(), M(), l
            }, this.progress = function(e) {
                if (!arguments.length)
                    return p;
                var t = !1, n = h, r = y ? y.info("scrollDirection") : "PAUSED", i = c.reverse || e >= p;
                c.duration === 0 ? (t = p != e, p = e < 1 && i ? 0 : 1, h = p === 0 ? "BEFORE" : "DURING") : e <= 0 && h !== "BEFORE" && i ? (p = 0, h = "BEFORE", t = !0) : e > 0 && e < 1 && i ? (p = e, h = "DURING", t = !0) : e >= 1 && h !== "AFTER" ? (p = 1, h = "AFTER", t = !0) : h === "DURING" && !i && D();
                if (t) {
                    var s = {progress: p,state: h,scrollDirection: r}, o = h != n, u = function(e) {
                        l.trigger(e, s)
                    };
                    o && n !== "DURING" && (u("enter"), u(n === "BEFORE" ? "start" : "end")), u("progress"), o && h !== "DURING" && (u(h === "BEFORE" ? "start" : "end"), u("leave"))
                }
                return l
            }, this.setTween = function(t) {
                if (!o)
                    return C(1, "ERROR: TimelineMax wasn't found. Please make sure GSAP is loaded before ScrollMagic or use asynchronous loading."), l;
                b && l.removeTween();
                try {
                    b = (new o({smoothChildTiming: !0})).add(t).pause()
                } catch (n) {
                    C(1, "ERROR calling method 'setTween()': Supplied argument is not a valid TweenObject")
                }finally {
                    t.repeat && t.repeat() === -1 && (b.repeat(-1), b.yoyo(t.yoyo()))
                }
                if (b && y && c.triggerElement && c.loglevel >= 2) {
                    var r = b.getTweensOf(e(c.triggerElement)), i = y.info("vertical");
                    e.each(r, function(e, t) {
                        var n = t.vars.css || t.vars, r = i ? n.top !== undefined || n.bottom !== undefined : n.left !== undefined || n.right !== undefined;
                        if (r)
                            return C(2, "WARNING: Tweening the position of the trigger element affects the scene timing and should be avoided!"), !1
                    })
                }
                if (parseFloat(TweenLite.version) >= 1.14) {
                    var s = b.getChildren(!0, !0, !1), u = function() {
                        C(2, "WARNING: tween was overwritten by another. To learn how to avoid this issue see here: https://github.com/janpaepke/ScrollMagic/wiki/WARNING:-tween-was-overwritten-by-another")
                    };
                    for (var a = 0, f, h; a < s.length; a++)
                        f = s[a], h !== u && (h = f.vars.onOverwrite, f.vars.onOverwrite = function() {
                            h && h.apply(this, arguments), u.apply(this, arguments)
                        })
                }
                return C(3, "added tween"), _(), l
            }, this.removeTween = function(e) {
                return b && (e && _(0), b.kill(), b = undefined, C(3, "removed tween (reset: " + (e ? "true" : "false") + ")")), l
            }, this.setPin = function(t, n) {
                var r = {pushFollowers: !0,spacerClass: "scrollmagic-pin-spacer",pinnedClass: ""};
                n = e.extend({}, r, n), t = e(t).first();
                if (t.length === 0)
                    return C(1, "ERROR calling method 'setPin()': Invalid pin element supplied."), l;
                if (t.css("position") == "fixed")
                    return C(1, "ERROR calling method 'setPin()': Pin does not work with elements that are positioned 'fixed'."), l;
                if (w) {
                    if (w === t)
                        return l;
                    l.removePin()
                }
                w = t, w.parent().hide();
                var i = w.css("position") != "absolute", s = w.css(["display", "top", "left", "bottom", "right"]), o = w.css(["width", "height"]);
                w.parent().show(), o.width === "0px" && i && u(s.display), !i && n.pushFollowers && (C(2, "WARNING: If the pinned element is positioned absolutely pushFollowers is disabled."), n.pushFollowers = !1);
                var f = e("<div></div>").addClass(n.spacerClass).css(s).data("ScrollMagicPinSpacer", !0).css({position: i ? "relative" : "absolute","margin-left": "auto","margin-right": "auto","box-sizing": "content-box"}), c = w[0].style;
                return E = {spacer: f,relSize: {width: o.width.slice(-1) === "%",height: o.height.slice(-1) === "%",autoFullWidth: o.width === "0px" && i && u(s.display)},pushFollowers: n.pushFollowers,inFlow: i,origStyle: {width: c.width || "",position: c.position || "",top: c.top || "",left: c.left || "",bottom: c.bottom || "",right: c.right || "","box-sizing": c["box-sizing"] || "","-moz-box-sizing": c["-moz-box-sizing"] || "","-webkit-box-sizing": c["-webkit-box-sizing"] || ""},pinnedClass: n.pinnedClass}, E.relSize.width && f.css("width", o.width), E.relSize.height && f.css("height", o.height), w.before(f).appendTo(f).css({position: i ? "relative" : "absolute",top: "auto",left: "auto",bottom: "auto",right: "auto"}), (E.relSize.width || E.relSize.autoFullWidth) && w.css("box-sizing", "border-box"), e(window).on("scroll." + a + "_pin resize." + a + "_pin", H), w.on("mousewheel DOMMouseScroll", j), C(3, "added pin"), D(), l
            }, this.removePin = function(t) {
                return w && (t || !y ? (w.insertBefore(E.spacer).css(E.origStyle), E.spacer.remove()) : h === "DURING" && D(!0), e(window).off("scroll." + a + "_pin resize." + a + "_pin"), w.off("mousewheel DOMMouseScroll", j), w = undefined, C(3, "removed pin (reset: " + (t ? "true" : "false") + ")")), l
            }, this.setClassToggle = function(t, n) {
                var r = e(t);
                return r.length === 0 || e.type(n) !== "string" ? (C(1, "ERROR calling method 'setClassToggle()': Invalid " + (r.length === 0 ? "element" : "classes") + " supplied."), l) : (S = n, x = r, l.on("enter.internal_class leave.internal_class", function(e) {
                    x.toggleClass(S, e.type === "enter")
                }), l)
            }, this.removeClassToggle = function(e) {
                return x && e && x.removeClass(S), l.off("start.internal_class end.internal_class"), S = undefined, x = undefined, l
            }, this.addTo = function(e) {
                return e instanceof n ? y != e && (y && y.removeScene(l), y = e, k(), O(!0), M(!0), A(), P(), y.info("container").on("resize." + a, function() {
                    B(), l.triggerHook() > 0 && l.trigger("shift", {reason: "containerSize"})
                }), C(3, "added " + a + " to controller"), e.addScene(l), l.update()) : C(1, "ERROR: supplied argument of 'addTo()' is not a valid ScrollMagic controller"), l
            }, this.enabled = function(e) {
                return arguments.length ? (m != e && (m = !!e, l.update(!0)), l) : m
            }, this.remove = function() {
                if (y) {
                    y.info("container").off("resize." + a);
                    var e = y;
                    y = undefined, C(3, "removed " + a + " from controller"), e.removeScene(l)
                }
                return l
            }, this.destroy = function(e) {
                return l.removeTween(e), l.removePin(e), l.removeClassToggle(e), l.trigger("destroy", {reset: e}), l.remove(), l.off("start end enter leave progress change update shift destroy shift.internal change.internal progress.internal"), C(3, "destroyed " + a + " (reset: " + (e ? "true" : "false") + ")"), null
            }, this.on = function(t, n) {
                if (e.isFunction(n)) {
                    var r = e.trim(t).toLowerCase().replace(/(\w+)\.(\w+)/g, "$1." + a + "_$2").replace(/( |^)(\w+)(?= |$)/g, "$1$2." + a);
                    e(l).on(r, n)
                } else
                    C(1, "ERROR calling method 'on()': Supplied argument is not a valid callback!");
                return l
            }, this.off = function(t, n) {
                var r = e.trim(t).toLowerCase().replace(/(\w+)\.(\w+)/g, "$1." + a + "_$2").replace(/( |^)(\w+)(?= |$)/g, "$1$2." + a + "$3");
                return e(l).off(r, n), l
            }, this.trigger = function(t, n) {
                C(3, "event fired:", t, "->", n);
                var r = e.Event(e.trim(t).toLowerCase(), n);
                return e(l).trigger(r), l
            }, N(), l
        }, r
    });
    var i = function(e) {
        var t = ["error", "warn", "log"];
        e.log || (e.log = function() {
        });
        for (var n = 0, r; n < t.length; n++)
            r = t[n], e[r] || (e[r] = e.log);
        return function(n) {
            if (n > t.length || n <= 0)
                n = t.length;
            var r = new Date, i = ("0" + r.getHours()).slice(-2) + ":" + ("0" + r.getMinutes()).slice(-2) + ":" + ("0" + r.getSeconds()).slice(-2) + ":" + ("00" + r.getMilliseconds()).slice(-3), s = t[n - 1], o = Array.prototype.splice.call(arguments, 1), u = Function.prototype.bind.call(e[s], e);
            o.unshift(i), u.apply(e, o)
        }
    }(window.console = window.console || {}), s = function(e, t) {
        var n = {top: 0,left: 0};
        e = e[0];
        if (e && e.getBoundingClientRect) {
            var r = e.getBoundingClientRect();
            n.top = r.top, n.left = r.left, t || (n.top += (window.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0), n.left += (window.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0))
        }
        return n
    }, o = function(e) {
        return typeof HTMLElement == "object" ? e instanceof HTMLElement : e && typeof e == "object" && e !== null && e.nodeType === 1 && typeof e.nodeName == "string"
    }, u = function(e) {
        return ["block", "flex", "list-item", "table", "-webkit-box"].indexOf(e) > -1
    }, a = window.requestAnimationFrame, f = window.cancelAnimationFrame;
    (function(e) {
        var t = 0, n = ["ms", "moz", "webkit", "o"], r;
        for (r = 0; !a && r < n.length; ++r)
            console.log(n[r] + "RequestAnimationFrame"), a = e[n[r] + "RequestAnimationFrame"], f = e[n[r] + "CancelAnimationFrame"] || e[n[r] + "CancelRequestAnimationFrame"];
        a || (a = function(n) {
            var r = (new Date).getTime(), i = Math.max(0, 16 - (r - t)), s = e.setTimeout(function() {
                n(r + i)
            }, i);
            return t = r + i, s
        }), f || (f = function(t) {
            e.clearTimeout(t)
        })
    })(window)
}(this || window);
if (typeof jQuery == "undefined")
    throw new Error("Bootstrap's JavaScript requires jQuery");
+function(e) {
    function t() {
        var e = document.createElement("bootstrap"), t = {WebkitTransition: "webkitTransitionEnd",MozTransition: "transitionend",OTransition: "oTransitionEnd otransitionend",transition: "transitionend"};
        for (var n in t)
            if (e.style[n] !== undefined)
                return {end: t[n]};
        return !1
    }
    e.fn.emulateTransitionEnd = function(t) {
        var n = !1, r = this;
        e(this).one("bsTransitionEnd", function() {
            n = !0
        });
        var i = function() {
            n || e(r).trigger(e.support.transition.end)
        };
        return setTimeout(i, t), this
    }, e(function() {
        e.support.transition = t();
        if (!e.support.transition)
            return;
        e.event.special.bsTransitionEnd = {bindType: e.support.transition.end,delegateType: e.support.transition.end,handle: function(t) {
                if (e(t.target).is(this))
                    return t.handleObj.handler.apply(this, arguments)
            }}
    })
}(jQuery), +function(e) {
    function r(t) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.alert");
            i || r.data("bs.alert", i = new n(this)), typeof t == "string" && i[t].call(r)
        })
    }
    var t = '[data-dismiss="alert"]', n = function(n) {
        e(n).on("click", t, this.close)
    };
    n.VERSION = "3.2.0", n.prototype.close = function(t) {
        function s() {
            i.detach().trigger("closed.bs.alert").remove()
        }
        var n = e(this), r = n.attr("data-target");
        r || (r = n.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, ""));
        var i = e(r);
        t && t.preventDefault(), i.length || (i = n.hasClass("alert") ? n : n.parent()), i.trigger(t = e.Event("close.bs.alert"));
        if (t.isDefaultPrevented())
            return;
        i.removeClass("in"), e.support.transition && i.hasClass("fade") ? i.one("bsTransitionEnd", s).emulateTransitionEnd(150) : s()
    };
    var i = e.fn.alert;
    e.fn.alert = r, e.fn.alert.Constructor = n, e.fn.alert.noConflict = function() {
        return e.fn.alert = i, this
    }, e(document).on("click.bs.alert.data-api", t, n.prototype.close)
}(jQuery), +function(e) {
    function n(n) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.button"), s = typeof n == "object" && n;
            i || r.data("bs.button", i = new t(this, s)), n == "toggle" ? i.toggle() : n && i.setState(n)
        })
    }
    var t = function(n, r) {
        this.$element = e(n), this.options = e.extend({}, t.DEFAULTS, r), this.isLoading = !1
    };
    t.VERSION = "3.2.0", t.DEFAULTS = {loadingText: "loading..."}, t.prototype.setState = function(t) {
        var n = "disabled", r = this.$element, i = r.is("input") ? "val" : "html", s = r.data();
        t += "Text", s.resetText == null && r.data("resetText", r[i]()), r[i](s[t] == null ? this.options[t] : s[t]), setTimeout(e.proxy(function() {
            t == "loadingText" ? (this.isLoading = !0, r.addClass(n).attr(n, n)) : this.isLoading && (this.isLoading = !1, r.removeClass(n).removeAttr(n))
        }, this), 0)
    }, t.prototype.toggle = function() {
        var e = !0, t = this.$element.closest('[data-toggle="buttons"]');
        if (t.length) {
            var n = this.$element.find("input");
            n.prop("type") == "radio" && (n.prop("checked") && this.$element.hasClass("active") ? e = !1 : t.find(".active").removeClass("active")), e && n.prop("checked", !this.$element.hasClass("active")).trigger("change")
        }
        e && this.$element.toggleClass("active")
    };
    var r = e.fn.button;
    e.fn.button = n, e.fn.button.Constructor = t, e.fn.button.noConflict = function() {
        return e.fn.button = r, this
    }, e(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(t) {
        var r = e(t.target);
        r.hasClass("btn") || (r = r.closest(".btn")), n.call(r, "toggle"), t.preventDefault()
    })
}(jQuery), +function(e) {
    function n(n) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.carousel"), s = e.extend({}, t.DEFAULTS, r.data(), typeof n == "object" && n), o = typeof n == "string" ? n : s.slide;
            i || r.data("bs.carousel", i = new t(this, s)), typeof n == "number" ? i.to(n) : o ? i[o]() : s.interval && i.pause().cycle()
        })
    }
    var t = function(t, n) {
        this.$element = e(t).on("keydown.bs.carousel", e.proxy(this.keydown, this)), this.$indicators = this.$element.find(".carousel-indicators"), this.options = n, this.paused = this.sliding = this.interval = this.$active = this.$items = null, this.options.pause == "hover" && this.$element.on("mouseenter.bs.carousel", e.proxy(this.pause, this)).on("mouseleave.bs.carousel", e.proxy(this.cycle, this))
    };
    t.VERSION = "3.2.0", t.DEFAULTS = {interval: 5e3,pause: "hover",wrap: !0}, t.prototype.keydown = function(e) {
        switch (e.which) {
            case 37:
                this.prev();
                break;
            case 39:
                this.next();
                break;
            default:
                return
        }
        e.preventDefault()
    }, t.prototype.cycle = function(t) {
        return t || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(e.proxy(this.next, this), this.options.interval)), this
    }, t.prototype.getItemIndex = function(e) {
        return this.$items = e.parent().children(".item"), this.$items.index(e || this.$active)
    }, t.prototype.to = function(t) {
        var n = this, r = this.getItemIndex(this.$active = this.$element.find(".item.active"));
        if (t > this.$items.length - 1 || t < 0)
            return;
        return this.sliding ? this.$element.one("slid.bs.carousel", function() {
            n.to(t)
        }) : r == t ? this.pause().cycle() : this.slide(t > r ? "next" : "prev", e(this.$items[t]))
    }, t.prototype.pause = function(t) {
        return t || (this.paused = !0), this.$element.find(".next, .prev").length && e.support.transition && (this.$element.trigger(e.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
    }, t.prototype.next = function() {
        if (this.sliding)
            return;
        return this.slide("next")
    }, t.prototype.prev = function() {
        if (this.sliding)
            return;
        return this.slide("prev")
    }, t.prototype.slide = function(t, n) {
        var r = this.$element.find(".item.active"), i = n || r[t](), s = this.interval, o = t == "next" ? "left" : "right", u = t == "next" ? "first" : "last", a = this;
        if (!i.length) {
            if (!this.options.wrap)
                return;
            i = this.$element.find(".item")[u]()
        }
        if (i.hasClass("active"))
            return this.sliding = !1;
        var f = i[0], l = e.Event("slide.bs.carousel", {relatedTarget: f,direction: o});
        this.$element.trigger(l);
        if (l.isDefaultPrevented())
            return;
        this.sliding = !0, s && this.pause();
        if (this.$indicators.length) {
            this.$indicators.find(".active").removeClass("active");
            var c = e(this.$indicators.children()[this.getItemIndex(i)]);
            c && c.addClass("active")
        }
        var h = e.Event("slid.bs.carousel", {relatedTarget: f,direction: o});
        return e.support.transition && this.$element.hasClass("slide") ? (i.addClass(t), i[0].offsetWidth, r.addClass(o), i.addClass(o), r.one("bsTransitionEnd", function() {
            i.removeClass([t, o].join(" ")).addClass("active"), r.removeClass(["active", o].join(" ")), a.sliding = !1, setTimeout(function() {
                a.$element.trigger(h)
            }, 0)
        }).emulateTransitionEnd(r.css("transition-duration").slice(0, -1) * 1e3)) : (r.removeClass("active"), i.addClass("active"), this.sliding = !1, this.$element.trigger(h)), s && this.cycle(), this
    };
    var r = e.fn.carousel;
    e.fn.carousel = n, e.fn.carousel.Constructor = t, e.fn.carousel.noConflict = function() {
        return e.fn.carousel = r, this
    }, e(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function(t) {
        var r, i = e(this), s = e(i.attr("data-target") || (r = i.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, ""));
        if (!s.hasClass("carousel"))
            return;
        var o = e.extend({}, s.data(), i.data()), u = i.attr("data-slide-to");
        u && (o.interval = !1), n.call(s, o), u && s.data("bs.carousel").to(u), t.preventDefault()
    }), e(window).on("load", function() {
        e('[data-ride="carousel"]').each(function() {
            var t = e(this);
            n.call(t, t.data())
        })
    })
}(jQuery), +function(e) {
    function n(n) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.collapse"), s = e.extend({}, t.DEFAULTS, r.data(), typeof n == "object" && n);
            !i && s.toggle && n == "show" && (n = !n), i || r.data("bs.collapse", i = new t(this, s)), typeof n == "string" && i[n]()
        })
    }
    var t = function(n, r) {
        this.$element = e(n), this.options = e.extend({}, t.DEFAULTS, r), this.transitioning = null, this.options.parent && (this.$parent = e(this.options.parent)), this.options.toggle && this.toggle()
    };
    t.VERSION = "3.2.0", t.DEFAULTS = {toggle: !0}, t.prototype.dimension = function() {
        var e = this.$element.hasClass("width");
        return e ? "width" : "height"
    }, t.prototype.show = function() {
        if (this.transitioning || this.$element.hasClass("in"))
            return;
        var t = e.Event("show.bs.collapse");
        this.$element.trigger(t);
        if (t.isDefaultPrevented())
            return;
        var r = this.$parent && this.$parent.find("> .panel > .in");
        if (r && r.length) {
            var i = r.data("bs.collapse");
            if (i && i.transitioning)
                return;
            n.call(r, "hide"), i || r.data("bs.collapse", null)
        }
        var s = this.dimension();
        this.$element.removeClass("collapse").addClass("collapsing")[s](0), this.transitioning = 1;
        var o = function() {
            this.$element.removeClass("collapsing").addClass("collapse in")[s](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
        };
        if (!e.support.transition)
            return o.call(this);
        var u = e.camelCase(["scroll", s].join("-"));
        this.$element.one("bsTransitionEnd", e.proxy(o, this)).emulateTransitionEnd(350)[s](this.$element[0][u])
    }, t.prototype.hide = function() {
        if (this.transitioning || !this.$element.hasClass("in"))
            return;
        var t = e.Event("hide.bs.collapse");
        this.$element.trigger(t);
        if (t.isDefaultPrevented())
            return;
        var n = this.dimension();
        this.$element[n](this.$element[n]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1;
        var r = function() {
            this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")
        };
        if (!e.support.transition)
            return r.call(this);
        this.$element[n](0).one("bsTransitionEnd", e.proxy(r, this)).emulateTransitionEnd(350)
    }, t.prototype.toggle = function() {
        this[this.$element.hasClass("in") ? "hide" : "show"]()
    };
    var r = e.fn.collapse;
    e.fn.collapse = n, e.fn.collapse.Constructor = t, e.fn.collapse.noConflict = function() {
        return e.fn.collapse = r, this
    }, e(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(t) {
        var r, i = e(this), s = i.attr("data-target") || t.preventDefault() || (r = i.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, ""), o = e(s), u = o.data("bs.collapse"), a = u ? "toggle" : i.data(), f = i.attr("data-parent"), l = f && e(f);
        if (!u || !u.transitioning)
            l && l.find('[data-toggle="collapse"][data-parent="' + f + '"]').not(i).addClass("collapsed"), i[o.hasClass("in") ? "addClass" : "removeClass"]("collapsed");
        n.call(o, a)
    })
}(jQuery), +function(e) {
    function i(r) {
        if (r && r.which === 3)
            return;
        e(t).remove(), e(n).each(function() {
            var t = s(e(this)), n = {relatedTarget: this};
            if (!t.hasClass("open"))
                return;
            t.trigger(r = e.Event("hide.bs.dropdown", n));
            if (r.isDefaultPrevented())
                return;
            t.removeClass("open").trigger("hidden.bs.dropdown", n)
        })
    }
    function s(t) {
        var n = t.attr("data-target");
        n || (n = t.attr("href"), n = n && /#[A-Za-z]/.test(n) && n.replace(/.*(?=#[^\s]*$)/, ""));
        var r = n && e(n);
        return r && r.length ? r : t.parent()
    }
    function o(t) {
        return this.each(function() {
            var n = e(this), i = n.data("bs.dropdown");
            i || n.data("bs.dropdown", i = new r(this)), typeof t == "string" && i[t].call(n)
        })
    }
    var t = ".dropdown-backdrop", n = '[data-toggle="dropdown"]', r = function(t) {
        e(t).on("click.bs.dropdown", this.toggle)
    };
    r.VERSION = "3.2.0", r.prototype.toggle = function(t) {
        var n = e(this);
        if (n.is(".disabled, :disabled"))
            return;
        var r = s(n), o = r.hasClass("open");
        i();
        if (!o) {
            "ontouchstart" in document.documentElement && !r.closest(".navbar-nav").length && e('<div class="dropdown-backdrop"/>').insertAfter(e(this)).on("click", i);
            var u = {relatedTarget: this};
            r.trigger(t = e.Event("show.bs.dropdown", u));
            if (t.isDefaultPrevented())
                return;
            n.trigger("focus"), r.toggleClass("open").trigger("shown.bs.dropdown", u)
        }
        return !1
    }, r.prototype.keydown = function(t) {
        if (!/(38|40|27)/.test(t.keyCode))
            return;
        var r = e(this);
        t.preventDefault(), t.stopPropagation();
        if (r.is(".disabled, :disabled"))
            return;
        var i = s(r), o = i.hasClass("open");
        if (!o || o && t.keyCode == 27)
            return t.which == 27 && i.find(n).trigger("focus"), r.trigger("click");
        var u = " li:not(.divider):visible a", a = i.find('[role="menu"]' + u + ', [role="listbox"]' + u);
        if (!a.length)
            return;
        var f = a.index(a.filter(":focus"));
        t.keyCode == 38 && f > 0 && f--, t.keyCode == 40 && f < a.length - 1 && f++, ~f || (f = 0), a.eq(f).trigger("focus")
    };
    var u = e.fn.dropdown;
    e.fn.dropdown = o, e.fn.dropdown.Constructor = r, e.fn.dropdown.noConflict = function() {
        return e.fn.dropdown = u, this
    }, e(document).on("click.bs.dropdown.data-api", i).on("click.bs.dropdown.data-api", ".dropdown form", function(e) {
        e.stopPropagation()
    }).on("click.bs.dropdown.data-api", n, r.prototype.toggle).on("keydown.bs.dropdown.data-api", n + ', [role="menu"], [role="listbox"]', r.prototype.keydown)
}(jQuery), +function(e) {
    function n(n, r) {
        return this.each(function() {
            var i = e(this), s = i.data("bs.modal"), o = e.extend({}, t.DEFAULTS, i.data(), typeof n == "object" && n);
            s || i.data("bs.modal", s = new t(this, o)), typeof n == "string" ? s[n](r) : o.show && s.show(r)
        })
    }
    var t = function(t, n) {
        this.options = n, this.$body = e(document.body), this.$element = e(t), this.$backdrop = this.isShown = null, this.scrollbarWidth = 0, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, e.proxy(function() {
            this.$element.trigger("loaded.bs.modal")
        }, this))
    };
    t.VERSION = "3.2.0", t.DEFAULTS = {backdrop: !0,keyboard: !0,show: !0}, t.prototype.toggle = function(e) {
        return this.isShown ? this.hide() : this.show(e)
    }, t.prototype.show = function(t) {
        var n = this, r = e.Event("show.bs.modal", {relatedTarget: t});
        this.$element.trigger(r);
        if (this.isShown || r.isDefaultPrevented())
            return;
        this.isShown = !0, this.checkScrollbar(), this.$body.addClass("modal-open"), this.setScrollbar(), this.escape(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', e.proxy(this.hide, this)), this.backdrop(function() {
            var r = e.support.transition && n.$element.hasClass("fade");
            n.$element.parent().length || n.$element.appendTo(n.$body), n.$element.show().scrollTop(0), r && n.$element[0].offsetWidth, n.$element.addClass("in").attr("aria-hidden", !1), n.enforceFocus();
            var i = e.Event("shown.bs.modal", {relatedTarget: t});
            r ? n.$element.find(".modal-dialog").one("bsTransitionEnd", function() {
                n.$element.trigger("focus").trigger(i)
            }).emulateTransitionEnd(300) : n.$element.trigger("focus").trigger(i)
        })
    }, t.prototype.hide = function(t) {
        t && t.preventDefault(), t = e.Event("hide.bs.modal"), this.$element.trigger(t);
        if (!this.isShown || t.isDefaultPrevented())
            return;
        this.isShown = !1, this.$body.removeClass("modal-open"), this.resetScrollbar(), this.escape(), e(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.bs.modal"), e.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", e.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal()
    }, t.prototype.enforceFocus = function() {
        e(document).off("focusin.bs.modal").on("focusin.bs.modal", e.proxy(function(e) {
            this.$element[0] !== e.target && !this.$element.has(e.target).length && this.$element.trigger("focus")
        }, this))
    }, t.prototype.escape = function() {
        this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", e.proxy(function(e) {
            e.which == 27 && this.hide()
        }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal")
    }, t.prototype.hideModal = function() {
        var e = this;
        this.$element.hide(), this.backdrop(function() {
            e.$element.trigger("hidden.bs.modal")
        })
    }, t.prototype.removeBackdrop = function() {
        this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
    }, t.prototype.backdrop = function(t) {
        var n = this, r = this.$element.hasClass("fade") ? "fade" : "";
        if (this.isShown && this.options.backdrop) {
            var i = e.support.transition && r;
            this.$backdrop = e('<div class="modal-backdrop ' + r + '" />').appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", e.proxy(function(e) {
                if (e.target !== e.currentTarget)
                    return;
                this.options.backdrop == "static" ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this)
            }, this)), i && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in");
            if (!t)
                return;
            i ? this.$backdrop.one("bsTransitionEnd", t).emulateTransitionEnd(150) : t()
        } else if (!this.isShown && this.$backdrop) {
            this.$backdrop.removeClass("in");
            var s = function() {
                n.removeBackdrop(), t && t()
            };
            e.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", s).emulateTransitionEnd(150) : s()
        } else
            t && t()
    }, t.prototype.checkScrollbar = function() {
        if (document.body.clientWidth >= window.innerWidth)
            return;
        this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
    }, t.prototype.setScrollbar = function() {
        var e = parseInt(this.$body.css("padding-right") || 0, 10);
        this.scrollbarWidth && this.$body.css("padding-right", e + this.scrollbarWidth)
    }, t.prototype.resetScrollbar = function() {
        this.$body.css("padding-right", "")
    }, t.prototype.measureScrollbar = function() {
        var e = document.createElement("div");
        e.className = "modal-scrollbar-measure", this.$body.append(e);
        var t = e.offsetWidth - e.clientWidth;
        return this.$body[0].removeChild(e), t
    };
    var r = e.fn.modal;
    e.fn.modal = n, e.fn.modal.Constructor = t, e.fn.modal.noConflict = function() {
        return e.fn.modal = r, this
    }, e(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(t) {
        var r = e(this), i = r.attr("href"), s = e(r.attr("data-target") || i && i.replace(/.*(?=#[^\s]+$)/, "")), o = s.data("bs.modal") ? "toggle" : e.extend({remote: !/#/.test(i) && i}, s.data(), r.data());
        r.is("a") && t.preventDefault(), s.one("show.bs.modal", function(e) {
            if (e.isDefaultPrevented())
                return;
            s.one("hidden.bs.modal", function() {
                r.is(":visible") && r.trigger("focus")
            })
        }), n.call(s, o, this)
    })
}(jQuery), +function(e) {
    function n(n) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.tooltip"), s = typeof n == "object" && n;
            if (!i && n == "destroy")
                return;
            i || r.data("bs.tooltip", i = new t(this, s)), typeof n == "string" && i[n]()
        })
    }
    var t = function(e, t) {
        this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", e, t)
    };
    t.VERSION = "3.2.0", t.DEFAULTS = {animation: !0,placement: "top",selector: !1,template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger: "hover focus",title: "",delay: 0,html: !1,container: !1,viewport: {selector: "body",padding: 0}}, t.prototype.init = function(t, n, r) {
        this.enabled = !0, this.type = t, this.$element = e(n), this.options = this.getOptions(r), this.$viewport = this.options.viewport && e(this.options.viewport.selector || this.options.viewport);
        var i = this.options.trigger.split(" ");
        for (var s = i.length; s--; ) {
            var o = i[s];
            if (o == "click")
                this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this));
            else if (o != "manual") {
                var u = o == "hover" ? "mouseenter" : "focusin", a = o == "hover" ? "mouseleave" : "focusout";
                this.$element.on(u + "." + this.type, this.options.selector, e.proxy(this.enter, this)), this.$element.on(a + "." + this.type, this.options.selector, e.proxy(this.leave, this))
            }
        }
        this.options.selector ? this._options = e.extend({}, this.options, {trigger: "manual",selector: ""}) : this.fixTitle()
    }, t.prototype.getDefaults = function() {
        return t.DEFAULTS
    }, t.prototype.getOptions = function(t) {
        return t = e.extend({}, this.getDefaults(), this.$element.data(), t), t.delay && typeof t.delay == "number" && (t.delay = {show: t.delay,hide: t.delay}), t
    }, t.prototype.getDelegateOptions = function() {
        var t = {}, n = this.getDefaults();
        return this._options && e.each(this._options, function(e, r) {
            n[e] != r && (t[e] = r)
        }), t
    }, t.prototype.enter = function(t) {
        var n = t instanceof this.constructor ? t : e(t.currentTarget).data("bs." + this.type);
        n || (n = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, n)), clearTimeout(n.timeout), n.hoverState = "in";
        if (!n.options.delay || !n.options.delay.show)
            return n.show();
        n.timeout = setTimeout(function() {
            n.hoverState == "in" && n.show()
        }, n.options.delay.show)
    }, t.prototype.leave = function(t) {
        var n = t instanceof this.constructor ? t : e(t.currentTarget).data("bs." + this.type);
        n || (n = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, n)), clearTimeout(n.timeout), n.hoverState = "out";
        if (!n.options.delay || !n.options.delay.hide)
            return n.hide();
        n.timeout = setTimeout(function() {
            n.hoverState == "out" && n.hide()
        }, n.options.delay.hide)
    }, t.prototype.show = function() {
        var t = e.Event("show.bs." + this.type);
        if (this.hasContent() && this.enabled) {
            this.$element.trigger(t);
            var n = e.contains(document.documentElement, this.$element[0]);
            if (t.isDefaultPrevented() || !n)
                return;
            var r = this, i = this.tip(), s = this.getUID(this.type);
            this.setContent(), i.attr("id", s), this.$element.attr("aria-describedby", s), this.options.animation && i.addClass("fade");
            var o = typeof this.options.placement == "function" ? this.options.placement.call(this, i[0], this.$element[0]) : this.options.placement, u = /\s?auto?\s?/i, a = u.test(o);
            a && (o = o.replace(u, "") || "top"), i.detach().css({top: 0,left: 0,display: "block"}).addClass(o).data("bs." + this.type, this), this.options.container ? i.appendTo(this.options.container) : i.insertAfter(this.$element);
            var f = this.getPosition(), l = i[0].offsetWidth, c = i[0].offsetHeight;
            if (a) {
                var h = o, p = this.$element.parent(), d = this.getPosition(p);
                o = o == "bottom" && f.top + f.height + c - d.scroll > d.height ? "top" : o == "top" && f.top - d.scroll - c < 0 ? "bottom" : o == "right" && f.right + l > d.width ? "left" : o == "left" && f.left - l < d.left ? "right" : o, i.removeClass(h).addClass(o)
            }
            var v = this.getCalculatedOffset(o, f, l, c);
            this.applyPlacement(v, o);
            var m = function() {
                r.$element.trigger("shown.bs." + r.type), r.hoverState = null
            };
            e.support.transition && this.$tip.hasClass("fade") ? i.one("bsTransitionEnd", m).emulateTransitionEnd(150) : m()
        }
    }, t.prototype.applyPlacement = function(t, n) {
        var r = this.tip(), i = r[0].offsetWidth, s = r[0].offsetHeight, o = parseInt(r.css("margin-top"), 10), u = parseInt(r.css("margin-left"), 10);
        isNaN(o) && (o = 0), isNaN(u) && (u = 0), t.top = t.top + o, t.left = t.left + u, e.offset.setOffset(r[0], e.extend({using: function(e) {
                r.css({top: Math.round(e.top),left: Math.round(e.left)})
            }}, t), 0), r.addClass("in");
        var a = r[0].offsetWidth, f = r[0].offsetHeight;
        n == "top" && f != s && (t.top = t.top + s - f);
        var l = this.getViewportAdjustedDelta(n, t, a, f);
        l.left ? t.left += l.left : t.top += l.top;
        var c = l.left ? l.left * 2 - i + a : l.top * 2 - s + f, h = l.left ? "left" : "top", p = l.left ? "offsetWidth" : "offsetHeight";
        r.offset(t), this.replaceArrow(c, r[0][p], h)
    }, t.prototype.replaceArrow = function(e, t, n) {
        this.arrow().css(n, e ? 50 * (1 - e / t) + "%" : "")
    }, t.prototype.setContent = function() {
        var e = this.tip(), t = this.getTitle();
        e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t), e.removeClass("fade in top bottom left right")
    }, t.prototype.hide = function() {
        function i() {
            t.hoverState != "in" && n.detach(), t.$element.trigger("hidden.bs." + t.type)
        }
        var t = this, n = this.tip(), r = e.Event("hide.bs." + this.type);
        this.$element.removeAttr("aria-describedby"), this.$element.trigger(r);
        if (r.isDefaultPrevented())
            return;
        return n.removeClass("in"), e.support.transition && this.$tip.hasClass("fade") ? n.one("bsTransitionEnd", i).emulateTransitionEnd(150) : i(), this.hoverState = null, this
    }, t.prototype.fixTitle = function() {
        var e = this.$element;
        (e.attr("title") || typeof e.attr("data-original-title") != "string") && e.attr("data-original-title", e.attr("title") || "").attr("title", "")
    }, t.prototype.hasContent = function() {
        return this.getTitle()
    }, t.prototype.getPosition = function(t) {
        t = t || this.$element;
        var n = t[0], r = n.tagName == "BODY";
        return e.extend({}, typeof n.getBoundingClientRect == "function" ? n.getBoundingClientRect() : null, {scroll: r ? document.documentElement.scrollTop || document.body.scrollTop : t.scrollTop(),width: r ? e(window).width() : t.outerWidth(),height: r ? e(window).height() : t.outerHeight()}, r ? {top: 0,left: 0} : t.offset())
    }, t.prototype.getCalculatedOffset = function(e, t, n, r) {
        return e == "bottom" ? {top: t.top + t.height,left: t.left + t.width / 2 - n / 2} : e == "top" ? {top: t.top - r,left: t.left + t.width / 2 - n / 2} : e == "left" ? {top: t.top + t.height / 2 - r / 2,left: t.left - n} : {top: t.top + t.height / 2 - r / 2,left: t.left + t.width}
    }, t.prototype.getViewportAdjustedDelta = function(e, t, n, r) {
        var i = {top: 0,left: 0};
        if (!this.$viewport)
            return i;
        var s = this.options.viewport && this.options.viewport.padding || 0, o = this.getPosition(this.$viewport);
        if (/right|left/.test(e)) {
            var u = t.top - s - o.scroll, a = t.top + s - o.scroll + r;
            u < o.top ? i.top = o.top - u : a > o.top + o.height && (i.top = o.top + o.height - a)
        } else {
            var f = t.left - s, l = t.left + s + n;
            f < o.left ? i.left = o.left - f : l > o.width && (i.left = o.left + o.width - l)
        }
        return i
    }, t.prototype.getTitle = function() {
        var e, t = this.$element, n = this.options;
        return e = t.attr("data-original-title") || (typeof n.title == "function" ? n.title.call(t[0]) : n.title), e
    }, t.prototype.getUID = function(e) {
        do
            e += ~~(Math.random() * 1e6);
        while (document.getElementById(e));
        return e
    }, t.prototype.tip = function() {
        return this.$tip = this.$tip || e(this.options.template)
    }, t.prototype.arrow = function() {
        return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
    }, t.prototype.validate = function() {
        this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
    }, t.prototype.enable = function() {
        this.enabled = !0
    }, t.prototype.disable = function() {
        this.enabled = !1
    }, t.prototype.toggleEnabled = function() {
        this.enabled = !this.enabled
    }, t.prototype.toggle = function(t) {
        var n = this;
        t && (n = e(t.currentTarget).data("bs." + this.type), n || (n = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, n))), n.tip().hasClass("in") ? n.leave(n) : n.enter(n)
    }, t.prototype.destroy = function() {
        clearTimeout(this.timeout), this.hide().$element.off("." + this.type).removeData("bs." + this.type)
    };
    var r = e.fn.tooltip;
    e.fn.tooltip = n, e.fn.tooltip.Constructor = t, e.fn.tooltip.noConflict = function() {
        return e.fn.tooltip = r, this
    }
}(jQuery), +function(e) {
    function n(n) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.popover"), s = typeof n == "object" && n;
            if (!i && n == "destroy")
                return;
            i || r.data("bs.popover", i = new t(this, s)), typeof n == "string" && i[n]()
        })
    }
    var t = function(e, t) {
        this.init("popover", e, t)
    };
    if (!e.fn.tooltip)
        throw new Error("Popover requires tooltip.js");
    t.VERSION = "3.2.0", t.DEFAULTS = e.extend({}, e.fn.tooltip.Constructor.DEFAULTS, {placement: "right",trigger: "click",content: "",template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}), t.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype), t.prototype.constructor = t, t.prototype.getDefaults = function() {
        return t.DEFAULTS
    }, t.prototype.setContent = function() {
        var e = this.tip(), t = this.getTitle(), n = this.getContent();
        e.find(".popover-title")[this.options.html ? "html" : "text"](t), e.find(".popover-content").empty()[this.options.html ? typeof n == "string" ? "html" : "append" : "text"](n), e.removeClass("fade top bottom left right in"), e.find(".popover-title").html() || e.find(".popover-title").hide()
    }, t.prototype.hasContent = function() {
        return this.getTitle() || this.getContent()
    }, t.prototype.getContent = function() {
        var e = this.$element, t = this.options;
        return e.attr("data-content") || (typeof t.content == "function" ? t.content.call(e[0]) : t.content)
    }, t.prototype.arrow = function() {
        return this.$arrow = this.$arrow || this.tip().find(".arrow")
    }, t.prototype.tip = function() {
        return this.$tip || (this.$tip = e(this.options.template)), this.$tip
    };
    var r = e.fn.popover;
    e.fn.popover = n, e.fn.popover.Constructor = t, e.fn.popover.noConflict = function() {
        return e.fn.popover = r, this
    }
}(jQuery), +function(e) {
    function t(n, r) {
        var i = e.proxy(this.process, this);
        this.$body = e("body"), this.$scrollElement = e(n).is("body") ? e(window) : e(n), this.options = e.extend({}, t.DEFAULTS, r), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", i), this.refresh(), this.process()
    }
    function n(n) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.scrollspy"), s = typeof n == "object" && n;
            i || r.data("bs.scrollspy", i = new t(this, s)), typeof n == "string" && i[n]()
        })
    }
    t.VERSION = "3.2.0", t.DEFAULTS = {offset: 10}, t.prototype.getScrollHeight = function() {
        return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
    }, t.prototype.refresh = function() {
        var t = "offset", n = 0;
        e.isWindow(this.$scrollElement[0]) || (t = "position", n = this.$scrollElement.scrollTop()), this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight();
        var r = this;
        this.$body.find(this.selector).map(function() {
            var r = e(this), i = r.data("target") || r.attr("href"), s = /^#./.test(i) && e(i);
            return s && s.length && s.is(":visible") && [[s[t]().top + n, i]] || null
        }).sort(function(e, t) {
            return e[0] - t[0]
        }).each(function() {
            r.offsets.push(this[0]), r.targets.push(this[1])
        })
    }, t.prototype.process = function() {
        var e = this.$scrollElement.scrollTop() + this.options.offset, t = this.getScrollHeight(), n = this.options.offset + t - this.$scrollElement.height(), r = this.offsets, i = this.targets, s = this.activeTarget, o;
        this.scrollHeight != t && this.refresh();
        if (e >= n)
            return s != (o = i[i.length - 1]) && this.activate(o);
        if (s && e <= r[0])
            return s != (o = i[0]) && this.activate(o);
        for (o = r.length; o--; )
            s != i[o] && e >= r[o] && (!r[o + 1] || e <= r[o + 1]) && this.activate(i[o])
    }, t.prototype.activate = function(t) {
        this.activeTarget = t, e(this.selector).parentsUntil(this.options.target, ".active").removeClass("active");
        var n = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]', r = e(n).parents("li").addClass("active");
        r.parent(".dropdown-menu").length && (r = r.closest("li.dropdown").addClass("active")), r.trigger("activate.bs.scrollspy")
    };
    var r = e.fn.scrollspy;
    e.fn.scrollspy = n, e.fn.scrollspy.Constructor = t, e.fn.scrollspy.noConflict = function() {
        return e.fn.scrollspy = r, this
    }, e(window).on("load.bs.scrollspy.data-api", function() {
        e('[data-spy="scroll"]').each(function() {
            var t = e(this);
            n.call(t, t.data())
        })
    })
}(jQuery), +function(e) {
    function n(n) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.tab");
            i || r.data("bs.tab", i = new t(this)), typeof n == "string" && i[n]()
        })
    }
    var t = function(t) {
        this.element = e(t)
    };
    t.VERSION = "3.2.0", t.prototype.show = function() {
        var t = this.element, n = t.closest("ul:not(.dropdown-menu)"), r = t.data("target");
        r || (r = t.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, ""));
        if (t.parent("li").hasClass("active"))
            return;
        var i = n.find(".active:last a")[0], s = e.Event("show.bs.tab", {relatedTarget: i});
        t.trigger(s);
        if (s.isDefaultPrevented())
            return;
        var o = e(r);
        this.activate(t.closest("li"), n), this.activate(o, o.parent(), function() {
            t.trigger({type: "shown.bs.tab",relatedTarget: i})
        })
    }, t.prototype.activate = function(t, n, r) {
        function o() {
            i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), t.addClass("active"), s ? (t[0].offsetWidth, t.addClass("in")) : t.removeClass("fade"), t.parent(".dropdown-menu") && t.closest("li.dropdown").addClass("active"), r && r()
        }
        var i = n.find("> .active"), s = r && e.support.transition && i.hasClass("fade");
        s ? i.one("bsTransitionEnd", o).emulateTransitionEnd(150) : o(), i.removeClass("in")
    };
    var r = e.fn.tab;
    e.fn.tab = n, e.fn.tab.Constructor = t, e.fn.tab.noConflict = function() {
        return e.fn.tab = r, this
    }, e(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(t) {
        t.preventDefault(), n.call(e(this), "show")
    })
}(jQuery), +function(e) {
    function n(n) {
        return this.each(function() {
            var r = e(this), i = r.data("bs.affix"), s = typeof n == "object" && n;
            i || r.data("bs.affix", i = new t(this, s)), typeof n == "string" && i[n]()
        })
    }
    var t = function(n, r) {
        this.options = e.extend({}, t.DEFAULTS, r), this.$target = e(this.options.target).on("scroll.bs.affix.data-api", e.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", e.proxy(this.checkPositionWithEventLoop, this)), this.$element = e(n), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition()
    };
    t.VERSION = "3.2.0", t.RESET = "affix affix-top affix-bottom", t.DEFAULTS = {offset: 0,target: window}, t.prototype.getPinnedOffset = function() {
        if (this.pinnedOffset)
            return this.pinnedOffset;
        this.$element.removeClass(t.RESET).addClass("affix");
        var e = this.$target.scrollTop(), n = this.$element.offset();
        return this.pinnedOffset = n.top - e
    }, t.prototype.checkPositionWithEventLoop = function() {
        setTimeout(e.proxy(this.checkPosition, this), 1)
    }, t.prototype.checkPosition = function() {
        if (!this.$element.is(":visible"))
            return;
        var n = e(document).height(), r = this.$target.scrollTop(), i = this.$element.offset(), s = this.options.offset, o = s.top, u = s.bottom;
        typeof s != "object" && (u = o = s), typeof o == "function" && (o = s.top(this.$element)), typeof u == "function" && (u = s.bottom(this.$element));
        var a = this.unpin != null && r + this.unpin <= i.top ? !1 : u != null && i.top + this.$element.height() >= n - u ? "bottom" : o != null && r <= o ? "top" : !1;
        if (this.affixed === a)
            return;
        this.unpin != null && this.$element.css("top", "");
        var f = "affix" + (a ? "-" + a : ""), l = e.Event(f + ".bs.affix");
        this.$element.trigger(l);
        if (l.isDefaultPrevented())
            return;
        this.affixed = a, this.unpin = a == "bottom" ? this.getPinnedOffset() : null, this.$element.removeClass(t.RESET).addClass(f).trigger(e.Event(f.replace("affix", "affixed"))), a == "bottom" && this.$element.offset({top: n - this.$element.height() - u})
    };
    var r = e.fn.affix;
    e.fn.affix = n, e.fn.affix.Constructor = t, e.fn.affix.noConflict = function() {
        return e.fn.affix = r, this
    }, e(window).on("load", function() {
        e('[data-spy="affix"]').each(function() {
            var t = e(this), r = t.data();
            r.offset = r.offset || {}, r.offsetBottom && (r.offset.bottom = r.offsetBottom), r.offsetTop && (r.offset.top = r.offsetTop), n.call(t, r)
        })
    })
}(jQuery), define("bootstrap", ["jquery"], function(e) {
    return function() {
        var t, n;
        return t || e.bootstrap
    }
}(this)), require.config({
  paths: {
    jquery: "../js/vendor/jquery/dist/jquery",
    bootstrap: "../../bower_components/bootstrap/dist/js/bootstrap",
    mason: "../js/vendor/mason.js/mason",
    modernizer: "../js/vendor/modernizer/modernizr",
    ScrollMagic: "../js/vendor/ScrollMagic/js/jquery.scrollmagic",
    ScrollScene: "../js/vendor/ScrollMagic/js/jquery.scrollmagic",
    TweenMax: "../js/vendor/ScrollMagic/js/_dependent/greensock/TweenMax.min",
    TweenLite: "../js/vendor/ScrollMagic/js/_dependent/greensock/TweenLite.min",
    TimelineMax: "../js/vendor/ScrollMagic/js/_dependent/greensock/TimelineMax.min",
    angular: "../../bower_components/angular/angular",
    "angular-animate": "../../bower_components/angular-animate/angular-animate",
    "angular-cookies": "../../bower_components/angular-cookies/angular-cookies",
    "angular-messages": "../../bower_components/angular-messages/angular-messages",
    "angular-mocks": "../../bower_components/angular-mocks/angular-mocks",
    "angular-resource": "../../bower_components/angular-resource/angular-resource",
    "angular-route": "../../bower_components/angular-route/angular-route",
    "angular-sanitize": "../../bower_components/angular-sanitize/angular-sanitize",
    "angular-scenario": "../../bower_components/angular-scenario/angular-scenario",
    "angular-touch": "../../bower_components/angular-touch/angular-touch"
  },
  shim: {
    mason: {
      deps: [
        "jquery"
      ],
      exports: "mason"
    },
    bootstrap: {
      deps: [
        "jquery"
      ],
      exports: "bootstrap"
    }
  },
  name: "app",
  out: "main-built.js",
  packages: [

  ]
}), require(["jquery", "mason", "ScrollMagic", "ScrollScene", "bootstrap"], function(e, t, n, r, i) {
    var s = new n;
    e(".preloader").fadeOut(1e3), e(".scroll").click(function() {
        if (location.pathname.replace(/^\//, "") == this.pathname.replace(/^\//, "") && location.hostname == this.hostname) {
            var t = e(this.hash);
            t = t.length ? t : e("[name=" + this.hash.slice(1) + "]");
            if (t.length)
                return e("html,body").animate({scrollTop: t.offset().top}, 650), !1
        }
    }), e(window).scroll(function() {
        var t = e(window).scrollTop();
        t <= 500 && e(".nav li.current").removeClass("current")
    });
    var o = e(window).width() + "px", u = e(window).height() + "px";
    e("#intro, #intro .item, #intro-video").css({width: o,height: u}), e(window).resize(function() {
        var t = e(window).width() + "px", n = e(window).height() + "px";
        e("#intro, #intro .item, #intro-video, #intro-video .item").css({width: t,height: n})
    }), e("#projects").mason({itemSelector: ".box",ratio: 1,sizes: [[1, 1]],promoted: [[1, 1, "normal"], [2, 1, "wide"], [2, 2, "big"], [1, 2, "tall"]],columns: [[0, 500, 1], [500, 970, 2], [970, 6e3, 4]],filler: {itemSelector: ".fillerBox",filler_class: "custom_filler"},gutter: 2,layout: "fluid"});
    //var a = (new r({triggerElement: "#about",triggerHook: "onLeave"})).setClassToggle(".navbar", "cbp-af-header-shrink").addTo(s)
}), define("main", function() {
});
/* jshint ignore:end */